added all changes.

This commit is contained in:
Darii Nurgaleev
2020-10-13 17:55:00 +07:00
parent 4f08343661
commit e88c5b8f09

View File

@@ -1,8 +1,3 @@
param(
[Parameter(Mandatory)] [string] $path,
[Parameter(Mandatory)] [string] $pattern
)
$ErrorActionPreference = "Stop" $ErrorActionPreference = "Stop"
function Validate-Scripts { function Validate-Scripts {
@@ -10,29 +5,32 @@ function Validate-Scripts {
[Parameter(Mandatory=$true)] [Parameter(Mandatory=$true)]
[string[]]$Path, [string[]]$Path,
[Parameter(Mandatory=$true)] [Parameter(Mandatory=$true)]
[string]$Pattern [string]$ExpectedShebang
) )
$ScriptWithoutShebangLine = @() $ScriptWithoutShebangLine = @()
Get-ChildItem $path | ForEach-Object { Get-ChildItem $path -Recurse -File -Filter "*.sh" | ForEach-Object {
if (Get-Content -Path $($_.FullName) | Select-Object -First 1 | Select-String -Pattern $Pattern -Quiet) { $shebangLine = Get-Content -Path $($_.FullName) | Select-Object -First 1
Write-Host "Pattern '$Pattern' found in '$($_.FullName)'" if ($shebangLine -eq $ExpectedShebang) {
Write-Host "Pattern '$ExpectedShebang' found in '$($_.FullName)'"
} }
else { else {
Write-Host "Pattern '$Pattern' not found in '$($_.FullName)'" Write-Host "Pattern '$ExpectedShebang' not found in '$($_.FullName)'"
$ScriptWithoutShebangLine += $($_.FullName) $ScriptWithoutShebangLine += $($_.FullName)
} }
} }
return $ScriptWithoutShebangLine return $ScriptWithoutShebangLine
} }
$PathUbuntu = "./images/linux/scripts"
$PathMacOS = "./images/macos/provision"
$ScriptsWithBrokenShebang = @() $ScriptsWithBrokenShebang = @()
# Check Ubuntu contains required shebang string # Check Ubuntu contains required shebang string
$ScriptsWithBrokenShebang += Validate-Scripts -Path $path1 -Pattern "#!/bin/bash -e" $ScriptsWithBrokenShebang += Validate-Scripts -Path $PathUbuntu -Pattern "#!/bin/bash -e"
# Check MacOS contains required shebang string # Check MacOS contains required shebang string
$ScriptsWithBrokenShebang += Validate-Scripts -Path $path2 -Pattern "#!/bin/bash -e -o pipefail" $ScriptsWithBrokenShebang += Validate-Scripts -Path $PathMacOS -Pattern "#!/bin/bash -e -o pipefail"
if ($ScriptsWithBrokenShebang.Length -gt 0) { if ($ScriptsWithBrokenShebang.Length -gt 0) {
$ScriptsWithBrokenShebang | ForEach-Object { $ScriptsWithBrokenShebang | ForEach-Object {
Write-Warning "The following script does not contain shebang: '$_'" Write-Warning "The following script does not contain shebang: '$_'"
} }
exit 1 exit 1
} }