mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-20 21:33:40 -07:00
Add clang-format scripts and github runner action (#5270)
This commit is contained in:
parent
17b91ecc2d
commit
e8389e0b2e
4 changed files with 102 additions and 0 deletions
48
run-clang-format.ps1
Normal file
48
run-clang-format.ps1
Normal file
|
@ -0,0 +1,48 @@
|
|||
Using Namespace System
|
||||
$url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.6/LLVM-14.0.6-win64.exe"
|
||||
$llvmInstallerPath = ".\LLVM-14.0.6-win64.exe"
|
||||
$clangFormatFilePath = ".\clang-format.exe"
|
||||
$requiredVersion = "clang-format version 14.0.6"
|
||||
$currentVersion = ""
|
||||
|
||||
function Test-7ZipInstalled {
|
||||
$sevenZipPath = "C:\Program Files\7-Zip\7z.exe"
|
||||
return Test-Path $sevenZipPath -PathType Leaf
|
||||
}
|
||||
|
||||
if (Test-Path $clangFormatFilePath) {
|
||||
$currentVersion = & $clangFormatFilePath --version
|
||||
if (-not ($currentVersion -eq $requiredVersion)) {
|
||||
# Delete the existing file if the version is incorrect
|
||||
Remove-Item $clangFormatFilePath -Force
|
||||
}
|
||||
}
|
||||
|
||||
if (-not (Test-Path $clangFormatFilePath) -or ($currentVersion -ne $requiredVersion)) {
|
||||
if (-not (Test-7ZipInstalled)) {
|
||||
Write-Host "7-Zip is not installed. Please install 7-Zip and run the script again."
|
||||
exit
|
||||
}
|
||||
|
||||
$wc = New-Object net.webclient
|
||||
$wc.Downloadfile($url, $llvmInstallerPath)
|
||||
|
||||
$sevenZipPath = "C:\Program Files\7-Zip\7z.exe"
|
||||
$specificFileInArchive = "bin\clang-format.exe"
|
||||
& "$sevenZipPath" e $llvmInstallerPath $specificFileInArchive
|
||||
|
||||
Remove-Item $llvmInstallerPath -Force
|
||||
}
|
||||
|
||||
$basePath = (Resolve-Path .).Path
|
||||
$files = Get-ChildItem -Path $basePath\soh -Recurse -File `
|
||||
| Where-Object { ($_.Extension -eq '.c' -or $_.Extension -eq '.cpp' -or `
|
||||
($_.Extension -eq '.h' -and `
|
||||
(-not ($_.FullName -like "*\soh\src\*" -or $_.FullName -like "*\soh\include\*")))) -and `
|
||||
(-not ($_.FullName -like "*\soh\assets\*")) }
|
||||
|
||||
foreach ($file in $files) {
|
||||
$relativePath = $file.FullName.Substring($basePath.Length + 1)
|
||||
Write-Host "Formatting $relativePath"
|
||||
.\clang-format.exe -i $file.FullName
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue