mirror of
				https://github.com/Ed94/refactor.git
				synced 2025-10-31 06:50:55 -07:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
| [string[]] $include = '*.h', '*.hh', '*.hpp', '*.c', '*.cc', '*.cpp'
 | |
| [string[]] $exclude = '*.g.*', '*.refactor', 'bloat.refactored.hpp', 'refactor.refactored.cpp'
 | |
| 
 | |
| 
 | |
| $path_root       = git rev-parse --show-toplevel
 | |
| $path_build      = Join-Path $path_root build
 | |
| $path_test       = Join-Path $path_root test
 | |
| $path_thirdparty = Join-Path $path_root thirdparty
 | |
| 
 | |
| $file_spec = Join-Path $path_test zpl.refactor
 | |
| $refactor  = Join-Path $path_build refactor.exe
 | |
| 
 | |
| # Gather the files to be formatted.
 | |
| $targetFiles = @(Get-ChildItem -Recurse -Path $path_thirdparty -Include $include -Exclude $exclude | Select-Object -ExpandProperty FullName)
 | |
| 
 | |
| 
 | |
| write-host "Beginning refactor...`n"
 | |
| 
 | |
| $refactors = @(@())
 | |
| 
 | |
| # TODO: Change this to support refactoring the other files in the project directory.
 | |
| # It needs two runs, one for the regular files, one for the zpl header.
 | |
| foreach ( $file in $targetFiles )
 | |
| {
 | |
|     $destination = Join-Path $path_test (Split-Path $file -leaf)
 | |
|     $destination = $destination.Replace( '.h', '.refactored.h' )
 | |
|     
 | |
|     $refactorParams = @(
 | |
|         "-src=$($file)",
 | |
|         "-dst=$($destination)"
 | |
|         "-spec=$($file_spec)"
 | |
|     )
 | |
| 
 | |
|     $refactors += (Start-Process $refactor $refactorParams -NoNewWindow -PassThru)
 | |
| }
 | |
| 
 | |
| foreach ( $process in $refactors )
 | |
| {
 | |
|     if ( $process )
 | |
|     {
 | |
|         $process.WaitForExit()
 | |
|     }
 | |
| }
 | |
| 
 | |
| Write-Host "`nRefactoring complete`n`n"
 | |
| 
 | |
| 
 | |
| # Can't format zpl library... (It hangs clang format)
 | |
| if ( $false )
 | |
| {
 | |
| Write-Host "Beginning format...`n"
 | |
| 
 | |
| # Format the files.
 | |
| $formatParams = @(
 | |
|     '-i'          # In-place
 | |
|     '-style=file' # Search for a .clang-format file in the parent directory of the source file.
 | |
|     '-verbose'
 | |
| )
 | |
| 
 | |
| $targetFiles = @(Get-ChildItem -Recurse -Path $path_test -Include $include -Exclude $exclude | Select-Object -ExpandProperty FullName)
 | |
| 
 | |
| clang-format $formatParams $targetFiles
 | |
| 
 | |
| Write-Host "`nFormatting complete"
 | |
| }
 |