From b30056c4b3e6dc0184d9e6ff2deeb17d33a61aaa Mon Sep 17 00:00:00 2001 From: Samuel Vasko Date: Mon, 24 Feb 2014 17:33:14 +0100 Subject: [PATCH] First draft of new build script --- scripts/build.ps1 | 52 +++++++++++++++++++++++++++++++++++++++++++++++ scripts/pack.ps1 | 0 2 files changed, 52 insertions(+) create mode 100644 scripts/build.ps1 create mode 100644 scripts/pack.ps1 diff --git a/scripts/build.ps1 b/scripts/build.ps1 new file mode 100644 index 0000000..b7c8e8a --- /dev/null +++ b/scripts/build.ps1 @@ -0,0 +1,52 @@ +<# + Samuel Vasko + Part of Cmder project + This script builds dependencies from current vendor/sources.json + file and unpacks them. +#> + +# Configs +$sourcesPath = "..\vendor\sources.json" +$saveTo = "..\vendor\" +# ------- + +# Check for requirements +Ensure-Exists $sourcesPath +Ensure-Executable "7z" + +$sources = Get-Content $sourcesPath | ConvertTo-Json + +foreach ($s in $sources) { + $ext = $s.url.Split('.')[-1] + Delete-Existing $saveTo + $($s.name) + Delete-Existing $saveTo + $($s.name) + "." + $ext + + Write-Host "-- Downloading $($s.name) --" + New-Object System.Net.WebClient + $wc.DownloadFile($s.url, "..\vendor\" + $s.name + "." + $ext) + Invoke-Item "7z x " + $s.name + "." + $ex + if ($LastExitCode != 0) { + Write-Error "Failied to extract " + $s.name; + exit 1 + } +} + +Write-Host "All good and done!" + +function Ensure-Exists ($item) { + if (!Test-Path $item) { + Write-Error "Missing required $($item) file" + exit 1 + } +} + +function Delete-Existing ($item) { + if (Test-Path $item) { Remove-Item $item } +} + +function Ensure-Executable ($command) { + if (!Get-Command $command) { + Write-Error "Missing $($command)! Ensure it is installed and on in the PATH" + exit 1 + } +} \ No newline at end of file diff --git a/scripts/pack.ps1 b/scripts/pack.ps1 new file mode 100644 index 0000000..e69de29