From 703bce2d009845c79604fe7a264be1d3aa4e0401 Mon Sep 17 00:00:00 2001 From: chylex <contact@chylex.com> Date: Fri, 13 Oct 2017 13:09:50 +0200 Subject: [PATCH] Fix PostBuild.ps1 errors not causing failed build & refactor --- Resources/PostBuild.ps1 | 61 +++++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/Resources/PostBuild.ps1 b/Resources/PostBuild.ps1 index 5c289465..8ff64012 100644 --- a/Resources/PostBuild.ps1 +++ b/Resources/PostBuild.ps1 @@ -3,6 +3,17 @@ $ErrorActionPreference = "Stop" Set-Location $dir +function Check-Carriage-Return{ + Param([Parameter(Mandatory = $True, Position = 1)] $fname) + + $file = @(Get-ChildItem -Include $fname -Recurse)[0] + Write-Host "Checking" $file.FullName.Substring($dir.Length) + + if ((Get-Content -Path $file.FullName -Raw).Contains("`r")){ + Throw "$fname cannot contain carriage return" + } +} + function Rewrite-File{ [CmdletBinding()] Param([Parameter(Mandatory = $True, ValueFromPipeline = $True)][array] $lines, [Parameter(Mandatory = $True, Position = 1)] $file) @@ -11,33 +22,31 @@ function Rewrite-File{ Write-Host "Processed" $file.FullName.Substring($dir.Length) } -ForEach($file in Get-ChildItem -Include emoji-ordering.txt -Recurse){ - Write-Host "Checking" $file.FullName.Substring($dir.Length) - $data = Get-Content -Path $file.FullName -Raw - - if ($data.Contains("`r")){ - Write-Host "Text files cannot contain carriage return" - Exit 1 +try{ + Check-Carriage-Return("emoji-ordering.txt") + + ForEach($file in Get-ChildItem -Filter *.js -Exclude configuration.default.js -Recurse){ + $lines = Get-Content -Path $file.FullName + $lines = $lines | % { $_.TrimStart() } + $lines = $lines -Replace '^(.*?)((?<=^|[;{}()])\s?//(?:\s.*|$))?$', '$1' + $lines = $lines -Replace '(?<!\w)return(\s.*?)? if (.*?);', 'if ($2)return$1;' + ,$lines | Rewrite-File $file } -} -ForEach($file in Get-ChildItem -Include *.js -Exclude configuration.default.js -Recurse){ - $lines = Get-Content -Path $file.FullName - $lines = $lines | % { $_.TrimStart() } - $lines = $lines -Replace '^(.*?)((?<=^|[;{}()])\s?//(?:\s.*|$))?$', '$1' - $lines = $lines -Replace '(?<!\w)return(\s.*?)? if (.*?);', 'if ($2)return$1;' - ,$lines | Rewrite-File $file -} + ForEach($file in Get-ChildItem -Filter *.css -Recurse){ + $lines = Get-Content -Path $file.FullName + $lines = $lines -Replace '\s*/\*.*?\*/', '' + $lines = $lines -Replace '^\s+(.+):\s?(.+?)(?:\s?(!important))?;$', '$1:$2$3;' + $lines = $lines -Replace '^(\S.*?) {$', '$1{' + @(($lines | Where { $_ -ne '' }) -Join ' ') | Rewrite-File $file + } -ForEach($file in Get-ChildItem -Include *.css -Recurse){ - $lines = Get-Content -Path $file.FullName - $lines = $lines -Replace '\s*/\*.*?\*/', '' - $lines = $lines -Replace '^\s+(.+):\s?(.+?)(?:\s?(!important))?;$', '$1:$2$3;' - $lines = $lines -Replace '^(\S.*?) {$', '$1{' - @(($lines | Where { $_ -ne '' }) -Join ' ') | Rewrite-File $file -} - -ForEach($file in Get-ChildItem -Include *.html -Recurse){ - $lines = Get-Content -Path $file.FullName - ,($lines | % { $_.TrimStart() }) | Rewrite-File $file + ForEach($file in Get-ChildItem -Filter *.html -Recurse){ + $lines = Get-Content -Path $file.FullName + ,($lines | % { $_.TrimStart() }) | Rewrite-File $file + } +}catch{ + Write-Host "Encountered an error while running PostBuild.ps1 on line" $_.InvocationInfo.ScriptLineNumber + Write-Host $_ + Exit 1 }