From 6d9bca805f58b726a3a9fdf7a3d3fe06ca6a78c1 Mon Sep 17 00:00:00 2001 From: Roy Ivy III Date: Mon, 17 Aug 2015 21:20:02 -0500 Subject: [PATCH] whitespace cleanup * makes changes to almost all main repo files to be in accordance with .editorconfig * some files in "test\fixtures\..." were left alone to avoid breaking tests * NOTE: whitespace changes *only* (`git diff -b` shows no changes) --- LICENSE | 2 +- README.md | 4 +- appveyor.yml | 2 +- bin/checkver.ps1 | 124 ++-- bin/install.ps1 | 6 +- bin/refresh.ps1 | 2 +- bin/scoop.ps1 | 2 +- bin/test.ps1 | 2 +- bin/uninstall.ps1 | 58 +- bucket/7zip.json | 32 +- bucket/apache.json | 46 +- bucket/apngasm.json | 16 +- bucket/bfg.json | 2 +- bucket/busybox.json | 256 ++++---- bucket/bzip2.json | 22 +- bucket/cmake.json | 26 +- bucket/concfg.json | 14 +- bucket/coreutils.json | 128 ++-- bucket/cowsay.json | 12 +- bucket/curl.json | 34 +- bucket/diffutils.json | 42 +- bucket/dig.json | 10 +- bucket/dnvm.json | 2 +- bucket/docker-machine.json | 34 +- bucket/docker.json | 8 +- bucket/doxygen.json | 14 +- bucket/elixir.json | 24 +- bucket/erlang.json | 40 +- bucket/far.json | 36 +- bucket/ffmpeg.json | 42 +- bucket/figlet.json | 12 +- bucket/findutils.json | 48 +- bucket/gawk.json | 42 +- bucket/gcc.json | 32 +- bucket/gcc45.json | 104 ++-- bucket/gibo.json | 20 +- bucket/git.json | 8 +- bucket/git19.json | 26 +- bucket/go.json | 38 +- bucket/gow.json | 276 ++++---- bucket/gradle.json | 16 +- bucket/graphviz.json | 92 +-- bucket/grep.json | 26 +- bucket/groovy.json | 2 +- bucket/gzip.json | 26 +- bucket/haskell.json | 46 +- bucket/haxe.json | 2 +- bucket/hub.json | 2 +- bucket/hugo.json | 2 +- bucket/iconv.json | 44 +- bucket/innounp.json | 12 +- bucket/julia.json | 74 +-- bucket/kotlin.json | 2 +- bucket/kvm.json | 4 +- bucket/less.json | 26 +- bucket/ln.json | 12 +- bucket/mariadb.json | 94 +-- bucket/maven.json | 26 +- bucket/mongodb.json | 68 +- bucket/msys.json | 12 +- bucket/nano.json | 16 +- bucket/neko.json | 2 +- bucket/netcat.json | 14 +- bucket/nginx.json | 14 +- bucket/nikto.json | 14 +- bucket/ninja.json | 2 +- bucket/nodejs.json | 32 +- bucket/nuget.json | 14 +- bucket/octave.json | 8 +- bucket/openjdk.json | 40 +- bucket/openssh.json | 58 +- bucket/openssl.json | 32 +- bucket/patch.json | 24 +- bucket/perl.json | 42 +- bucket/pester.json | 4 +- bucket/php.json | 22 +- bucket/php52.json | 14 +- bucket/php53.json | 14 +- bucket/php54.json | 22 +- bucket/php55.json | 22 +- bucket/postgresql.json | 108 ++-- bucket/premake4.json | 2 +- bucket/premake5.json | 2 +- bucket/pshazz.json | 12 +- bucket/python.json | 76 +-- bucket/python27.json | 76 +-- bucket/r.json | 30 +- bucket/redis.json | 22 +- bucket/rktools2k3.json | 190 +++--- bucket/rsync.json | 14 +- bucket/ruby.json | 66 +- bucket/ruby19.json | 30 +- bucket/runat.json | 12 +- bucket/rust.json | 22 +- bucket/say.json | 24 +- bucket/sbcl.json | 32 +- bucket/sbt.json | 18 +- bucket/scriptcs.json | 14 +- bucket/sed.json | 26 +- bucket/shasum.json | 24 +- bucket/sliksvn.json | 60 +- bucket/sqlite.json | 14 +- bucket/sudo.json | 12 +- bucket/syncany-cli.json | 22 +- bucket/tar.json | 40 +- bucket/telnet.json | 42 +- bucket/time.json | 12 +- bucket/touch.json | 12 +- bucket/unzip.json | 36 +- bucket/vagrant.json | 22 +- bucket/vim.json | 66 +- bucket/wget.json | 56 +- bucket/youtube-dl.json | 20 +- bucket/zip.json | 36 +- buckets.json | 6 +- lib/buckets.ps1 | 36 +- lib/commands.ps1 | 10 +- lib/config.ps1 | 118 ++-- lib/core.ps1 | 338 +++++----- lib/decompress.ps1 | 26 +- lib/depends.ps1 | 70 +-- lib/getopt.ps1 | 104 ++-- lib/help.ps1 | 12 +- lib/install.ps1 | 968 ++++++++++++++--------------- lib/manifest.ps1 | 62 +- lib/versions.ps1 | 66 +- libexec/scoop-alias.ps1 | 8 +- libexec/scoop-bucket.ps1 | 70 +-- libexec/scoop-cache.ps1 | 74 +-- libexec/scoop-config.ps1 | 12 +- libexec/scoop-create.ps1 | 14 +- libexec/scoop-depends.ps1 | 4 +- libexec/scoop-export.ps1 | 4 +- libexec/scoop-help.ps1 | 38 +- libexec/scoop-home.ps1 | 2 +- libexec/scoop-install.ps1 | 20 +- libexec/scoop-list.ps1 | 10 +- libexec/scoop-reset.ps1 | 2 +- libexec/scoop-search.ps1 | 72 +-- libexec/scoop-status.ps1 | 108 ++-- libexec/scoop-uninstall.ps1 | 54 +- libexec/scoop-update.ps1 | 290 ++++----- libexec/scoop-which.ps1 | 20 +- scoop.sublime-project | 24 +- supporting/shimexe/build.ps1 | 2 +- supporting/shimexe/shim.cs | 276 ++++---- test/Scoop-Alias.Tests.ps1 | 2 +- test/Scoop-Config.Tests.ps1 | 2 +- test/Scoop-GetOpts.Tests.ps1 | 108 ++-- test/Scoop-Install.Tests.ps1 | 74 +-- test/Scoop-TestLib.ps1 | 110 ++-- test/fixtures/parse_json/wget.json | 56 +- 152 files changed, 3584 insertions(+), 3584 deletions(-) diff --git a/LICENSE b/LICENSE index 00d2e135a7..68a49daad8 100644 --- a/LICENSE +++ b/LICENSE @@ -21,4 +21,4 @@ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -For more information, please refer to \ No newline at end of file +For more information, please refer to diff --git a/README.md b/README.md index 008d089bf5..8c9d6b3ca3 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Requirements: To install: iex (new-object net.webclient).downloadstring('https://get.scoop.sh') - + Once installed, run `scoop help` for instructions. What does Scoop do? @@ -51,4 +51,4 @@ The apps that install best with Scoop are commonly called "portable" apps: i.e. Since installers are common, Scoop supports them too (and their uninstallers). -Scoop is also great at handling single-file programs and Powershell scripts. These don't even need to be compressed. See the [runat](https://github.com/lukesampson/scoop/blob/master/bucket/runat.json) package for an example: it's really just a GitHub gist. \ No newline at end of file +Scoop is also great at handling single-file programs and Powershell scripts. These don't even need to be compressed. See the [runat](https://github.com/lukesampson/scoop/blob/master/bucket/runat.json) package for an example: it's really just a GitHub gist. diff --git a/appveyor.yml b/appveyor.yml index 32bd4c87af..ee9e21227d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,7 +1,7 @@ version: "{build}-{branch}" branches: - except: + except: - gh-pages init: diff --git a/bin/checkver.ps1 b/bin/checkver.ps1 index 0c83210e28..e0b9fae2d2 100644 --- a/bin/checkver.ps1 +++ b/bin/checkver.ps1 @@ -15,75 +15,75 @@ if($app) { $search = $app } # get apps to check $queue = @() gci $dir "$search.json" | % { - $json = parse_json "$dir\$_" - if($json.checkver) { - $queue += ,@($_, $json) - } + $json = parse_json "$dir\$_" + if($json.checkver) { + $queue += ,@($_, $json) + } } # clear any existing events get-event | % { - remove-event $_.sourceidentifier + remove-event $_.sourceidentifier } # start all downloads $queue | % { - $wc = new-object net.webclient - register-objectevent $wc downloadstringcompleted -ea stop | out-null + $wc = new-object net.webclient + register-objectevent $wc downloadstringcompleted -ea stop | out-null - $name, $json = $_ + $name, $json = $_ - $url = $json.checkver.url - if(!$url) { $url = $json.homepage } + $url = $json.checkver.url + if(!$url) { $url = $json.homepage } - $state = new-object psobject @{ - app = (strip_ext $name); - url = $url; - json = $json; - } + $state = new-object psobject @{ + app = (strip_ext $name); + url = $url; + json = $json; + } - $wc.downloadstringasync($url, $state) + $wc.downloadstringasync($url, $state) } # wait for all to complete $in_progress = $queue.length while($in_progress -gt 0) { - $ev = wait-event - remove-event $ev.sourceidentifier - $in_progress-- - - $state = $ev.sourceeventargs.userstate - $app = $state.app - $json = $state.json - $url = $state.url - $expected_ver = $json.version - - $err = $ev.sourceeventargs.error - $page = $ev.sourceeventargs.result - - $regexp = $json.checkver.re - if(!$regexp) { $regexp = $json.checkver } - - $regexp = "(?s)$regexp" - - write-host "$app`: " -nonewline - - if($err) { - write-host "ERROR: $err" -f darkyellow - } else { - if($page -match $regexp) { - $ver = $matches[1] - if($ver -eq $expected_ver) { - write-host "$ver" -f darkgreen - } else { - write-host "$ver" -f darkred -nonewline - write-host " (scoop version is $expected_ver)" - } - - } else { - write-host "couldn't match '$regexp' in $url" -f darkred - } - } + $ev = wait-event + remove-event $ev.sourceidentifier + $in_progress-- + + $state = $ev.sourceeventargs.userstate + $app = $state.app + $json = $state.json + $url = $state.url + $expected_ver = $json.version + + $err = $ev.sourceeventargs.error + $page = $ev.sourceeventargs.result + + $regexp = $json.checkver.re + if(!$regexp) { $regexp = $json.checkver } + + $regexp = "(?s)$regexp" + + write-host "$app`: " -nonewline + + if($err) { + write-host "ERROR: $err" -f darkyellow + } else { + if($page -match $regexp) { + $ver = $matches[1] + if($ver -eq $expected_ver) { + write-host "$ver" -f darkgreen + } else { + write-host "$ver" -f darkred -nonewline + write-host " (scoop version is $expected_ver)" + } + + } else { + write-host "couldn't match '$regexp' in $url" -f darkred + } + } } <# @@ -99,15 +99,15 @@ if(!$regexp) { $regexp = $json.checkver } $page = $wc.downloadstring($url) if($page -match $regexp) { - $ver = $matches[1] - if($ver -eq $expected_ver) { - write-host "$ver" -f darkgreen - } else { - write-host "$ver" -f darkred -nonewline - write-host " (scoop version is $expected_ver)" - } - + $ver = $matches[1] + if($ver -eq $expected_ver) { + write-host "$ver" -f darkgreen + } else { + write-host "$ver" -f darkred -nonewline + write-host " (scoop version is $expected_ver)" + } + } else { - write-host "couldn't match '$regexp' in $url" -f darkred + write-host "couldn't match '$regexp' in $url" -f darkred } -#> \ No newline at end of file +#> diff --git a/bin/install.ps1 b/bin/install.ps1 index 01028fc66f..706461a09a 100644 --- a/bin/install.ps1 +++ b/bin/install.ps1 @@ -11,9 +11,9 @@ iex (new-object net.webclient).downloadstring($core_url) # prep if(installed 'scoop') { - write-host "scoop is already installed. run 'scoop update' to get the latest version." -f red - # don't abort if invoked with iex——that would close the PS session - if($myinvocation.commandorigin -eq 'Internal') { return } else { exit 1 } + write-host "scoop is already installed. run 'scoop update' to get the latest version." -f red + # don't abort if invoked with iex——that would close the PS session + if($myinvocation.commandorigin -eq 'Internal') { return } else { exit 1 } } $dir = ensure (versiondir 'scoop' 'current') diff --git a/bin/refresh.ps1 b/bin/refresh.ps1 index ec55babdac..5654a01bf1 100644 --- a/bin/refresh.ps1 +++ b/bin/refresh.ps1 @@ -16,4 +16,4 @@ echo 'creating shim...' shim "$dest\bin\scoop.ps1" $false ensure_scoop_in_path -success 'scoop was refreshed!' \ No newline at end of file +success 'scoop was refreshed!' diff --git a/bin/scoop.ps1 b/bin/scoop.ps1 index 857b9d0adb..fcd08627df 100644 --- a/bin/scoop.ps1 +++ b/bin/scoop.ps1 @@ -12,4 +12,4 @@ $commands = commands if (@($null, '-h', '--help', '/?') -contains $cmd) { exec 'help' $args } elseif ($commands -contains $cmd) { exec $cmd $args } -else { "scoop: '$cmd' isn't a scoop command. See 'scoop help'"; exit 1 } \ No newline at end of file +else { "scoop: '$cmd' isn't a scoop command. See 'scoop help'"; exit 1 } diff --git a/bin/test.ps1 b/bin/test.ps1 index 1fdb26b981..a32e23c195 100644 --- a/bin/test.ps1 +++ b/bin/test.ps1 @@ -1 +1 @@ -invoke-pester $psscriptroot\..\test \ No newline at end of file +invoke-pester $psscriptroot\..\test diff --git a/bin/uninstall.ps1 b/bin/uninstall.ps1 index d0840fd9d9..592f9dde55 100644 --- a/bin/uninstall.ps1 +++ b/bin/uninstall.ps1 @@ -6,7 +6,7 @@ param($global) . "$psscriptroot\..\lib\manifest.ps1" if($global -and !(is_admin)) { - "ERROR: you need admin rights to uninstall globally"; exit 1 + "ERROR: you need admin rights to uninstall globally"; exit 1 } warn 'this will uninstall scoop and all the programs that have been installed with scoop!' @@ -15,47 +15,47 @@ if($yn -notlike 'y*') { exit } $errors = $false function do_uninstall($app, $global) { - $version = current_version $app $global - $dir = versiondir $app $version $global - $manifest = installed_manifest $app $version $global - $install = install_info $app $version $global - $architecture = $install.architecture + $version = current_version $app $global + $dir = versiondir $app $version $global + $manifest = installed_manifest $app $version $global + $install = install_info $app $version $global + $architecture = $install.architecture - echo "uninstalling $app" - run_uninstaller $manifest $architecture $dir - rm_shims $manifest $global - env_rm_path $manifest $dir $global - env_rm $manifest $global + echo "uninstalling $app" + run_uninstaller $manifest $architecture $dir + rm_shims $manifest $global + env_rm_path $manifest $dir $global + env_rm $manifest $global - $appdir = appdir $app $global - try { - rm -r -force $appdir -ea stop - } catch { - $errors = $true - warn "couldn't remove $(friendly_path $appdir): $_.exception" - } + $appdir = appdir $app $global + try { + rm -r -force $appdir -ea stop + } catch { + $errors = $true + warn "couldn't remove $(friendly_path $appdir): $_.exception" + } } function rm_dir($dir) { - try { - rm -r -force $dir -ea stop - } catch { - abort "couldn't remove $(friendly_path $dir): $_" - } + try { + rm -r -force $dir -ea stop + } catch { + abort "couldn't remove $(friendly_path $dir): $_" + } } # run uninstallation for each app if necessary, continuing if there's # a problem deleting a directory (which is quite likely) if($global) { - installed_apps $true | % { # global apps - do_uninstall $_ $true - } + installed_apps $true | % { # global apps + do_uninstall $_ $true + } } installed_apps $false | % { # local apps - do_uninstall $_ $false + do_uninstall $_ $false } if($errors) { - abort "not all apps could be deleted. try again or restart" + abort "not all apps could be deleted. try again or restart" } rm_dir $scoopdir @@ -64,4 +64,4 @@ if($global) { rm_dir $globaldir } remove_from_path (shimdir $false) if($global) { remove_from_path (shimdir $true) } -success "scoop has been uninstalled" \ No newline at end of file +success "scoop has been uninstalled" diff --git a/bucket/7zip.json b/bucket/7zip.json index a5945e3145..e058154fe3 100644 --- a/bucket/7zip.json +++ b/bucket/7zip.json @@ -1,18 +1,18 @@ { - "homepage": "http://www.7-zip.org/", - "license": "http://www.7-zip.org/license.txt", - "version": "9.38", - "architecture": { - "64bit": { - "url": "http://www.7-zip.org/a/7z938-x64.msi", - "hash": "7c8e873991c82ad9cfcdbdf45254ea6101e9a645e12977dcd518979e50fdedf3" - }, - "32bit": { - "url": "http://www.7-zip.org/a/7z938.msi", - "hash": "c48f13efbde87f370f2a70885df55c1e53f2c791c2007f9587810f915fecc0d8" - } - }, - "extract_dir": "Files/7-Zip", - "bin": "7z.exe", - "checkver": "Download 7-zip ([^\\ ]+)" + "homepage": "http://www.7-zip.org/", + "license": "http://www.7-zip.org/license.txt", + "version": "9.38", + "architecture": { + "64bit": { + "url": "http://www.7-zip.org/a/7z938-x64.msi", + "hash": "7c8e873991c82ad9cfcdbdf45254ea6101e9a645e12977dcd518979e50fdedf3" + }, + "32bit": { + "url": "http://www.7-zip.org/a/7z938.msi", + "hash": "c48f13efbde87f370f2a70885df55c1e53f2c791c2007f9587810f915fecc0d8" + } + }, + "extract_dir": "Files/7-Zip", + "bin": "7z.exe", + "checkver": "Download 7-zip ([^\\ ]+)" } diff --git a/bucket/apache.json b/bucket/apache.json index 46a3b519eb..a1c77169b5 100644 --- a/bucket/apache.json +++ b/bucket/apache.json @@ -1,30 +1,30 @@ { - "homepage": "http://www.apachelounge.com", - "version": "2.4.12", - "license": "Apache 2.0", - "url": "http://www.apachelounge.com/download/VC11/binaries/httpd-2.4.12-win32-VC11.zip", - "hash": "DBA963DB9819CD2AE3CB0E970F4159E199981F9BA0B33C537395C6AE1222951D", - "extract_dir": "Apache24", - "bin": [ - "bin\\ab.exe", - "bin\\abs.exe", - "bin\\htcacheclean.exe", - "bin\\htdbm.exe", - "bin\\htdigest.exe", - "bin\\htpasswd.exe", - "bin\\httpd.exe", - "bin\\httxt2dbm.exe", - "bin\\logresolve.exe", - "bin\\rotatelogs.exe" - ], - "post_install": " + "homepage": "http://www.apachelounge.com", + "version": "2.4.12", + "license": "Apache 2.0", + "url": "http://www.apachelounge.com/download/VC11/binaries/httpd-2.4.12-win32-VC11.zip", + "hash": "DBA963DB9819CD2AE3CB0E970F4159E199981F9BA0B33C537395C6AE1222951D", + "extract_dir": "Apache24", + "bin": [ + "bin\\ab.exe", + "bin\\abs.exe", + "bin\\htcacheclean.exe", + "bin\\htdbm.exe", + "bin\\htdigest.exe", + "bin\\htpasswd.exe", + "bin\\httpd.exe", + "bin\\httxt2dbm.exe", + "bin\\logresolve.exe", + "bin\\rotatelogs.exe" + ], + "post_install": " # set directory in httpd.conf $conf = \"$dir/conf/httpd.conf\" $root=(scoop which httpd | split-path -res -par | split-path -par) -replace '\\\\', '/'; (gc $conf) | % { $_ -replace 'c:/Apache24', \"$root\" } | sc $conf ", - "checkver": { - "url": "http://www.apachelounge.com/download/", - "re": "Apache ([0-9\\.]+) Win64" - } + "checkver": { + "url": "http://www.apachelounge.com/download/", + "re": "Apache ([0-9\\.]+) Win64" + } } diff --git a/bucket/apngasm.json b/bucket/apngasm.json index 0b6ca15292..38cbabda42 100644 --- a/bucket/apngasm.json +++ b/bucket/apngasm.json @@ -1,9 +1,9 @@ { - "homepage": "https://github.com/apngasm/apngasm", - "version": "3.0.0", - "url": "http://files.genshin.org/apngasm/apngasm-cli.7z", - "hash": "cebb7eab13d56b5ade45ef50abd16bae4b63a5505192f032593ad67c1d1f2e2c", - "bin": [ - [ "apngasm-cli.exe", "apngasm" ] - ] -} \ No newline at end of file + "homepage": "https://github.com/apngasm/apngasm", + "version": "3.0.0", + "url": "http://files.genshin.org/apngasm/apngasm-cli.7z", + "hash": "cebb7eab13d56b5ade45ef50abd16bae4b63a5505192f032593ad67c1d1f2e2c", + "bin": [ + [ "apngasm-cli.exe", "apngasm" ] + ] +} diff --git a/bucket/bfg.json b/bucket/bfg.json index aea7488b16..9bb670394f 100644 --- a/bucket/bfg.json +++ b/bucket/bfg.json @@ -9,6 +9,6 @@ "env_set": { "BFG_HOME": "$dir" }, "pre_install": " $exe = 'java -jar $env:BFG_HOME\\bfg-1.12.3.jar $args' - write-output $exe | out-file -filepath $dir\\bfg.ps1 + write-output $exe | out-file -filepath $dir\\bfg.ps1 " } diff --git a/bucket/busybox.json b/bucket/busybox.json index 1c7654921f..ef60993b6a 100644 --- a/bucket/busybox.json +++ b/bucket/busybox.json @@ -1,134 +1,134 @@ { - "homepage": "http://intgat.tigress.co.uk/rmy/busybox/index.html", - "version": "1.24.0-TIG-1778", - "license": "GPL2", - "url": "http://intgat.tigress.co.uk/rmy/files/busybox/busybox-w32-TIG-1778-g15efec6.exe#/busybox.exe", - "hash": "0869cd27010fb972b7a4f3cc99671b5fbd1f3109bb38adf66299e0f011e6333f", - "bin": [ - "busybox.exe", - [ "busybox.exe", "ar", "ar" ], - [ "busybox.exe", "ash", "ash" ], - [ "busybox.exe", "awk", "awk" ], - [ "busybox.exe", "base64", "base64" ], - [ "busybox.exe", "basename", "basename" ], - [ "busybox.exe", "bash", "bash", "-l" ], - [ "busybox.exe", "bbconfig", "bbconfig" ], - [ "busybox.exe", "bunzip2", "bunzip2" ], - [ "busybox.exe", "bzcat", "bzcat" ], - [ "busybox.exe", "bzip2", "bzip2" ], - [ "busybox.exe", "cal", "cal" ], - [ "busybox.exe", "cat", "cat" ], - [ "busybox.exe", "catv", "catv" ], - [ "busybox.exe", "chmod", "chmod" ], - [ "busybox.exe", "cksum", "cksum" ], - [ "busybox.exe", "clear", "clear" ], - [ "busybox.exe", "cmp", "cmp" ], - [ "busybox.exe", "comm", "comm" ], - [ "busybox.exe", "cp", "cp" ], - [ "busybox.exe", "cpio", "cpio" ], - [ "busybox.exe", "cut", "cut" ], - [ "busybox.exe", "date", "date" ], - [ "busybox.exe", "dc", "dc" ], - [ "busybox.exe", "dd", "dd" ], - [ "busybox.exe", "df", "df" ], - [ "busybox.exe", "diff", "diff" ], - [ "busybox.exe", "dirname", "dirname" ], - [ "busybox.exe", "dos2unix", "dos2unix" ], - [ "busybox.exe", "du", "du" ], - [ "busybox.exe", "echo", "echo" ], - [ "busybox.exe", "ed", "ed" ], - [ "busybox.exe", "egrep", "egrep" ], - [ "busybox.exe", "env", "env" ], - [ "busybox.exe", "expand", "expand" ], - [ "busybox.exe", "expr", "expr" ], - [ "busybox.exe", "false", "false" ], - [ "busybox.exe", "fgrep", "fgrep" ], - [ "busybox.exe", "find", "find" ], - [ "busybox.exe", "fold", "fold" ], - [ "busybox.exe", "getopt", "getopt" ], - [ "busybox.exe", "grep", "grep" ], - [ "busybox.exe", "gunzip", "gunzip" ], - [ "busybox.exe", "gzip", "gzip" ], - [ "busybox.exe", "hd", "hd" ], - [ "busybox.exe", "head", "head" ], - [ "busybox.exe", "hexdump", "hexdump" ], - [ "busybox.exe", "kill", "kill" ], - [ "busybox.exe", "killall", "killall" ], - [ "busybox.exe", "logname", "logname" ], - [ "busybox.exe", "ls", "ls" ], - [ "busybox.exe", "lzcat", "lzcat" ], - [ "busybox.exe", "lzma", "lzma" ], - [ "busybox.exe", "lzop", "lzop" ], - [ "busybox.exe", "lzopcat", "lzopcat" ], - [ "busybox.exe", "man", "man" ], - [ "busybox.exe", "md5sum", "md5sum" ], - [ "busybox.exe", "mkdir", "mkdir" ], - [ "busybox.exe", "mktemp", "mktemp" ], - [ "busybox.exe", "mv", "mv" ], - [ "busybox.exe", "od", "od" ], - [ "busybox.exe", "pgrep", "pgrep" ], - [ "busybox.exe", "pidof", "pidof" ], - [ "busybox.exe", "printenv", "printenv" ], - [ "busybox.exe", "printf", "printf" ], - [ "busybox.exe", "ps", "ps" ], - [ "busybox.exe", "pwd", "pwd" ], - [ "busybox.exe", "rm", "rm" ], - [ "busybox.exe", "rmdir", "rmdir" ], - [ "busybox.exe", "sed", "sed" ], - [ "busybox.exe", "seq", "seq" ], - [ "busybox.exe", "sh", "sh" ], - [ "busybox.exe", "sha1sum", "sha1sum" ], - [ "busybox.exe", "sha256sum", "sha256sum" ], - [ "busybox.exe", "sha3sum", "sha3sum" ], - [ "busybox.exe", "sha512sum", "sha512sum" ], - [ "busybox.exe", "sleep", "sleep" ], - [ "busybox.exe", "sort", "sort" ], - [ "busybox.exe", "split", "split" ], - [ "busybox.exe", "stat", "stat" ], - [ "busybox.exe", "strings", "strings" ], - [ "busybox.exe", "sum", "sum" ], - [ "busybox.exe", "tac", "tac" ], - [ "busybox.exe", "tail", "tail" ], - [ "busybox.exe", "tar", "tar" ], - [ "busybox.exe", "tee", "tee" ], - [ "busybox.exe", "test", "test" ], - [ "busybox.exe", "touch", "touch" ], - [ "busybox.exe", "tr", "tr" ], - [ "busybox.exe", "true", "true" ], - [ "busybox.exe", "truncate", "truncate" ], - [ "busybox.exe", "uname", "uname" ], - [ "busybox.exe", "uncompress", "uncompress" ], - [ "busybox.exe", "unexpand", "unexpand" ], - [ "busybox.exe", "uniq", "uniq" ], - [ "busybox.exe", "unix2dos", "unix2dos" ], - [ "busybox.exe", "unlink", "unlink" ], - [ "busybox.exe", "unlzma", "unlzma" ], - [ "busybox.exe", "unlzop", "unlzop" ], - [ "busybox.exe", "unxz", "unxz" ], - [ "busybox.exe", "unzip", "unzip" ], - [ "busybox.exe", "usleep", "usleep" ], - [ "busybox.exe", "uudecode", "uudecode" ], - [ "busybox.exe", "uuencode", "uuencode" ], - [ "busybox.exe", "vi", "vi" ], - [ "busybox.exe", "wc", "wc" ], - [ "busybox.exe", "wget", "wget" ], - [ "busybox.exe", "which", "which" ], - [ "busybox.exe", "whoami", "whoami" ], - [ "busybox.exe", "xargs", "xargs" ], - [ "busybox.exe", "xz", "xz" ], - [ "busybox.exe", "xzcat", "xzcat" ], - [ "busybox.exe", "yes", "yes" ], - [ "busybox.exe", "zcat", "zcat" ] - ], - "post_install": " - if(!(test-path ~/.profile)) { - 'creating ~/.profile' + "homepage": "http://intgat.tigress.co.uk/rmy/busybox/index.html", + "version": "1.24.0-TIG-1778", + "license": "GPL2", + "url": "http://intgat.tigress.co.uk/rmy/files/busybox/busybox-w32-TIG-1778-g15efec6.exe#/busybox.exe", + "hash": "0869cd27010fb972b7a4f3cc99671b5fbd1f3109bb38adf66299e0f011e6333f", + "bin": [ + "busybox.exe", + [ "busybox.exe", "ar", "ar" ], + [ "busybox.exe", "ash", "ash" ], + [ "busybox.exe", "awk", "awk" ], + [ "busybox.exe", "base64", "base64" ], + [ "busybox.exe", "basename", "basename" ], + [ "busybox.exe", "bash", "bash", "-l" ], + [ "busybox.exe", "bbconfig", "bbconfig" ], + [ "busybox.exe", "bunzip2", "bunzip2" ], + [ "busybox.exe", "bzcat", "bzcat" ], + [ "busybox.exe", "bzip2", "bzip2" ], + [ "busybox.exe", "cal", "cal" ], + [ "busybox.exe", "cat", "cat" ], + [ "busybox.exe", "catv", "catv" ], + [ "busybox.exe", "chmod", "chmod" ], + [ "busybox.exe", "cksum", "cksum" ], + [ "busybox.exe", "clear", "clear" ], + [ "busybox.exe", "cmp", "cmp" ], + [ "busybox.exe", "comm", "comm" ], + [ "busybox.exe", "cp", "cp" ], + [ "busybox.exe", "cpio", "cpio" ], + [ "busybox.exe", "cut", "cut" ], + [ "busybox.exe", "date", "date" ], + [ "busybox.exe", "dc", "dc" ], + [ "busybox.exe", "dd", "dd" ], + [ "busybox.exe", "df", "df" ], + [ "busybox.exe", "diff", "diff" ], + [ "busybox.exe", "dirname", "dirname" ], + [ "busybox.exe", "dos2unix", "dos2unix" ], + [ "busybox.exe", "du", "du" ], + [ "busybox.exe", "echo", "echo" ], + [ "busybox.exe", "ed", "ed" ], + [ "busybox.exe", "egrep", "egrep" ], + [ "busybox.exe", "env", "env" ], + [ "busybox.exe", "expand", "expand" ], + [ "busybox.exe", "expr", "expr" ], + [ "busybox.exe", "false", "false" ], + [ "busybox.exe", "fgrep", "fgrep" ], + [ "busybox.exe", "find", "find" ], + [ "busybox.exe", "fold", "fold" ], + [ "busybox.exe", "getopt", "getopt" ], + [ "busybox.exe", "grep", "grep" ], + [ "busybox.exe", "gunzip", "gunzip" ], + [ "busybox.exe", "gzip", "gzip" ], + [ "busybox.exe", "hd", "hd" ], + [ "busybox.exe", "head", "head" ], + [ "busybox.exe", "hexdump", "hexdump" ], + [ "busybox.exe", "kill", "kill" ], + [ "busybox.exe", "killall", "killall" ], + [ "busybox.exe", "logname", "logname" ], + [ "busybox.exe", "ls", "ls" ], + [ "busybox.exe", "lzcat", "lzcat" ], + [ "busybox.exe", "lzma", "lzma" ], + [ "busybox.exe", "lzop", "lzop" ], + [ "busybox.exe", "lzopcat", "lzopcat" ], + [ "busybox.exe", "man", "man" ], + [ "busybox.exe", "md5sum", "md5sum" ], + [ "busybox.exe", "mkdir", "mkdir" ], + [ "busybox.exe", "mktemp", "mktemp" ], + [ "busybox.exe", "mv", "mv" ], + [ "busybox.exe", "od", "od" ], + [ "busybox.exe", "pgrep", "pgrep" ], + [ "busybox.exe", "pidof", "pidof" ], + [ "busybox.exe", "printenv", "printenv" ], + [ "busybox.exe", "printf", "printf" ], + [ "busybox.exe", "ps", "ps" ], + [ "busybox.exe", "pwd", "pwd" ], + [ "busybox.exe", "rm", "rm" ], + [ "busybox.exe", "rmdir", "rmdir" ], + [ "busybox.exe", "sed", "sed" ], + [ "busybox.exe", "seq", "seq" ], + [ "busybox.exe", "sh", "sh" ], + [ "busybox.exe", "sha1sum", "sha1sum" ], + [ "busybox.exe", "sha256sum", "sha256sum" ], + [ "busybox.exe", "sha3sum", "sha3sum" ], + [ "busybox.exe", "sha512sum", "sha512sum" ], + [ "busybox.exe", "sleep", "sleep" ], + [ "busybox.exe", "sort", "sort" ], + [ "busybox.exe", "split", "split" ], + [ "busybox.exe", "stat", "stat" ], + [ "busybox.exe", "strings", "strings" ], + [ "busybox.exe", "sum", "sum" ], + [ "busybox.exe", "tac", "tac" ], + [ "busybox.exe", "tail", "tail" ], + [ "busybox.exe", "tar", "tar" ], + [ "busybox.exe", "tee", "tee" ], + [ "busybox.exe", "test", "test" ], + [ "busybox.exe", "touch", "touch" ], + [ "busybox.exe", "tr", "tr" ], + [ "busybox.exe", "true", "true" ], + [ "busybox.exe", "truncate", "truncate" ], + [ "busybox.exe", "uname", "uname" ], + [ "busybox.exe", "uncompress", "uncompress" ], + [ "busybox.exe", "unexpand", "unexpand" ], + [ "busybox.exe", "uniq", "uniq" ], + [ "busybox.exe", "unix2dos", "unix2dos" ], + [ "busybox.exe", "unlink", "unlink" ], + [ "busybox.exe", "unlzma", "unlzma" ], + [ "busybox.exe", "unlzop", "unlzop" ], + [ "busybox.exe", "unxz", "unxz" ], + [ "busybox.exe", "unzip", "unzip" ], + [ "busybox.exe", "usleep", "usleep" ], + [ "busybox.exe", "uudecode", "uudecode" ], + [ "busybox.exe", "uuencode", "uuencode" ], + [ "busybox.exe", "vi", "vi" ], + [ "busybox.exe", "wc", "wc" ], + [ "busybox.exe", "wget", "wget" ], + [ "busybox.exe", "which", "which" ], + [ "busybox.exe", "whoami", "whoami" ], + [ "busybox.exe", "xargs", "xargs" ], + [ "busybox.exe", "xz", "xz" ], + [ "busybox.exe", "xzcat", "xzcat" ], + [ "busybox.exe", "yes", "yes" ], + [ "busybox.exe", "zcat", "zcat" ] + ], + "post_install": " + if(!(test-path ~/.profile)) { + 'creating ~/.profile' @\" -if [ -e ~/.bashrc ] +if [ -e ~/.bashrc ] then - source ~/.bashrc + source ~/.bashrc fi \"@ | out-file -en oem ~/.profile - } - " + } + " } diff --git a/bucket/bzip2.json b/bucket/bzip2.json index 6f8311ed18..f2f06981ff 100644 --- a/bucket/bzip2.json +++ b/bucket/bzip2.json @@ -1,12 +1,12 @@ { - "version": "1.0.5", - "homepage": "http://gnuwin32.sourceforge.net/packages/bzip2.htm", - "url": "http://ufpr.dl.sourceforge.net/project/gnuwin32/bzip2/1.0.5/bzip2-1.0.5-bin.zip", - "hash": "md5:a1155c41b1954a2f6da1014c7c1a1263", - "bin": [ - "bin\\bunzip2.exe", - "bin\\bzcat.exe", - "bin\\bzip2.exe", - "bin\\bzip2recover.exe" - ] -} \ No newline at end of file + "version": "1.0.5", + "homepage": "http://gnuwin32.sourceforge.net/packages/bzip2.htm", + "url": "http://ufpr.dl.sourceforge.net/project/gnuwin32/bzip2/1.0.5/bzip2-1.0.5-bin.zip", + "hash": "md5:a1155c41b1954a2f6da1014c7c1a1263", + "bin": [ + "bin\\bunzip2.exe", + "bin\\bzcat.exe", + "bin\\bzip2.exe", + "bin\\bzip2recover.exe" + ] +} diff --git a/bucket/cmake.json b/bucket/cmake.json index ea2033a4a1..a47b6a59b9 100644 --- a/bucket/cmake.json +++ b/bucket/cmake.json @@ -1,15 +1,15 @@ { - "homepage": "http://www.cmake.org/", - "version": "3.2.2", - "license": "http://www.cmake.org/licensing/", - "url": "http://www.cmake.org/files/v3.2/cmake-3.2.2-win32-x86.zip", - "hash": "8728119BBB48468AB45230A579463729E7B12D6BABFA1AD77E771B239B5430DB", - "extract_dir": "cmake-3.2.2-win32-x86", - "bin": [ - "bin/cmake.exe", - "bin/cmcldeps.exe", - "bin/cpack.exe", - "bin/ctest.exe" - ], - "checkver": "Download CMake Version ([0-9\\.]+)" + "homepage": "http://www.cmake.org/", + "version": "3.2.2", + "license": "http://www.cmake.org/licensing/", + "url": "http://www.cmake.org/files/v3.2/cmake-3.2.2-win32-x86.zip", + "hash": "8728119BBB48468AB45230A579463729E7B12D6BABFA1AD77E771B239B5430DB", + "extract_dir": "cmake-3.2.2-win32-x86", + "bin": [ + "bin/cmake.exe", + "bin/cmcldeps.exe", + "bin/cpack.exe", + "bin/ctest.exe" + ], + "checkver": "Download CMake Version ([0-9\\.]+)" } diff --git a/bucket/concfg.json b/bucket/concfg.json index b161e12955..47320da1b5 100644 --- a/bucket/concfg.json +++ b/bucket/concfg.json @@ -1,8 +1,8 @@ { - "homepage": "https://github.com/lukesampson/concfg", - "version": "0.2014.03.17.3", - "url": "https://github.com/lukesampson/concfg/archive/625a669b66.zip", - "hash": "ff603642e65fa909f7bbc84a3e6503cf47beb2c6c08c42716d8394615c04fd8d", - "extract_dir": "concfg-625a669b669cdc0fd592488967ecd269005808d3", - "bin": "bin\\concfg.ps1" -} \ No newline at end of file + "homepage": "https://github.com/lukesampson/concfg", + "version": "0.2014.03.17.3", + "url": "https://github.com/lukesampson/concfg/archive/625a669b66.zip", + "hash": "ff603642e65fa909f7bbc84a3e6503cf47beb2c6c08c42716d8394615c04fd8d", + "extract_dir": "concfg-625a669b669cdc0fd592488967ecd269005808d3", + "bin": "bin\\concfg.ps1" +} diff --git a/bucket/coreutils.json b/bucket/coreutils.json index 330e91b837..cc1eb61631 100644 --- a/bucket/coreutils.json +++ b/bucket/coreutils.json @@ -1,65 +1,65 @@ { - "homepage": "http://www.mingw.org/wiki/msys", - "license": "GPL2", - "version": "5.97.3", - "url": [ - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.13-2/msysCORE-1.0.13-2-msys-1.0.13-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/gettext/gettext-0.17-2/libintl-0.17-2-msys-dll-8.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/libiconv/libiconv-1.13.1-2/libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/termcap/termcap-0.20050421_1-2/libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/coreutils/coreutils-5.97-3/coreutils-5.97-3-msys-1.0.13-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/coreutils/coreutils-5.97-3/coreutils-5.97-3-msys.RELEASE_NOTES.txt" - ], - "hash": [ - "41c7d5561662e41da74951f373a08a95db40b27b1246227bbbc13abc44976ea7", - "b533de0ee04dc4d53ca745210e41eb9437044ebd367c001f3615092e7214a4a3", - "f13de6d2e3c428e7f9a7251c6b01d6f7569e20f7ac126c68c028eb5f542473bb", - "62b58fe0880f0972fcc84a819265989b02439c1c5185870227bd25f870f7adb6", - "f8c7990416ea16a74ac336dcfe0f596bc46b8724b2d58cf8a3509414220b2366", - "256208bca7a86a10bc377bdccfe6fb8f1e1f1868d0d1952a6692ee9f1d985abd" - ], - "bin": [ - "bin\\basename.exe", - "bin\\cat.exe", - "bin\\chmod.exe", - "bin\\comm.exe", - "bin\\cp.exe", - "bin\\cut.exe", - "bin\\date.exe", - "bin\\dirname.exe", - "bin\\echo.exe", - "bin\\env.exe", - "bin\\expr.exe", - "bin\\false.exe", - "bin\\fold.exe", - "bin\\head.exe", - "bin\\id.exe", - "bin\\install.exe", - "bin\\join.exe", - "bin\\ln.exe", - "bin\\ls.exe", - "bin\\md5sum.exe", - "bin\\mkdir.exe", - "bin\\msysmnt.exe", - "bin\\mv.exe", - "bin\\od.exe", - "bin\\paste.exe", - "bin\\printf.exe", - "bin\\ps.exe", - "bin\\pwd.exe", - "bin\\rm.exe", - "bin\\rmdir.exe", - "bin\\sleep.exe", - "bin\\sort.exe", - "bin\\split.exe", - "bin\\stty.exe", - "bin\\tail.exe", - "bin\\tee.exe", - "bin\\touch.exe", - "bin\\tr.exe", - "bin\\true.exe", - "bin\\uname.exe", - "bin\\uniq.exe", - "bin\\wc.exe" - ] -} \ No newline at end of file + "homepage": "http://www.mingw.org/wiki/msys", + "license": "GPL2", + "version": "5.97.3", + "url": [ + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.13-2/msysCORE-1.0.13-2-msys-1.0.13-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/gettext/gettext-0.17-2/libintl-0.17-2-msys-dll-8.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/libiconv/libiconv-1.13.1-2/libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/termcap/termcap-0.20050421_1-2/libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/coreutils/coreutils-5.97-3/coreutils-5.97-3-msys-1.0.13-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/coreutils/coreutils-5.97-3/coreutils-5.97-3-msys.RELEASE_NOTES.txt" + ], + "hash": [ + "41c7d5561662e41da74951f373a08a95db40b27b1246227bbbc13abc44976ea7", + "b533de0ee04dc4d53ca745210e41eb9437044ebd367c001f3615092e7214a4a3", + "f13de6d2e3c428e7f9a7251c6b01d6f7569e20f7ac126c68c028eb5f542473bb", + "62b58fe0880f0972fcc84a819265989b02439c1c5185870227bd25f870f7adb6", + "f8c7990416ea16a74ac336dcfe0f596bc46b8724b2d58cf8a3509414220b2366", + "256208bca7a86a10bc377bdccfe6fb8f1e1f1868d0d1952a6692ee9f1d985abd" + ], + "bin": [ + "bin\\basename.exe", + "bin\\cat.exe", + "bin\\chmod.exe", + "bin\\comm.exe", + "bin\\cp.exe", + "bin\\cut.exe", + "bin\\date.exe", + "bin\\dirname.exe", + "bin\\echo.exe", + "bin\\env.exe", + "bin\\expr.exe", + "bin\\false.exe", + "bin\\fold.exe", + "bin\\head.exe", + "bin\\id.exe", + "bin\\install.exe", + "bin\\join.exe", + "bin\\ln.exe", + "bin\\ls.exe", + "bin\\md5sum.exe", + "bin\\mkdir.exe", + "bin\\msysmnt.exe", + "bin\\mv.exe", + "bin\\od.exe", + "bin\\paste.exe", + "bin\\printf.exe", + "bin\\ps.exe", + "bin\\pwd.exe", + "bin\\rm.exe", + "bin\\rmdir.exe", + "bin\\sleep.exe", + "bin\\sort.exe", + "bin\\split.exe", + "bin\\stty.exe", + "bin\\tail.exe", + "bin\\tee.exe", + "bin\\touch.exe", + "bin\\tr.exe", + "bin\\true.exe", + "bin\\uname.exe", + "bin\\uniq.exe", + "bin\\wc.exe" + ] +} diff --git a/bucket/cowsay.json b/bucket/cowsay.json index 90d85e20f3..47a057dbdc 100644 --- a/bucket/cowsay.json +++ b/bucket/cowsay.json @@ -1,7 +1,7 @@ { - "version": "0.2013.07.19", - "homepage": "https://github.com/lukesampson/cowsay-psh", - "url": "https://github.com/lukesampson/cowsay-psh/archive/master.zip", - "extract_dir": "cowsay-psh-master", - "bin": ["cowsay.ps1","cowthink.ps1"] -} \ No newline at end of file + "version": "0.2013.07.19", + "homepage": "https://github.com/lukesampson/cowsay-psh", + "url": "https://github.com/lukesampson/cowsay-psh/archive/master.zip", + "extract_dir": "cowsay-psh-master", + "bin": ["cowsay.ps1","cowthink.ps1"] +} diff --git a/bucket/curl.json b/bucket/curl.json index 1d2f8bf340..720a9dcfb5 100644 --- a/bucket/curl.json +++ b/bucket/curl.json @@ -1,19 +1,19 @@ { - "homepage": "http://curl.haxx.se/", - "version": "7.39.0", - "licence": "MIT", - "architecture": { - "64bit": { - "url": "http://www.confusedbycode.com/curl/curl-7.39.0-win64.zip", - "hash": "946c3ab2625b9352a846e493319978b1ef2818173c711ed8b1bb8c0e04189ee4", - "extract_dir": "curl-7.39.0-win64" - }, - "32bit": { - "url": "http://www.confusedbycode.com/curl/curl-7.39.0-win32.zip", - "hash": "e97a78dc97ece670580cccf735a5ec048513da0a9ba5135d4ae227b7cde68dba", - "extract_dir": "curl-7.39.0-win32" - } - }, - "bin": "bin/curl.exe", - "checkver": "The most recent stable version is\\s*([0-99\\.]+)" + "homepage": "http://curl.haxx.se/", + "version": "7.39.0", + "licence": "MIT", + "architecture": { + "64bit": { + "url": "http://www.confusedbycode.com/curl/curl-7.39.0-win64.zip", + "hash": "946c3ab2625b9352a846e493319978b1ef2818173c711ed8b1bb8c0e04189ee4", + "extract_dir": "curl-7.39.0-win64" + }, + "32bit": { + "url": "http://www.confusedbycode.com/curl/curl-7.39.0-win32.zip", + "hash": "e97a78dc97ece670580cccf735a5ec048513da0a9ba5135d4ae227b7cde68dba", + "extract_dir": "curl-7.39.0-win32" + } + }, + "bin": "bin/curl.exe", + "checkver": "The most recent stable version is\\s*([0-99\\.]+)" } diff --git a/bucket/diffutils.json b/bucket/diffutils.json index 1c86570134..a3b438180c 100644 --- a/bucket/diffutils.json +++ b/bucket/diffutils.json @@ -1,22 +1,22 @@ { - "homepage": "http://www.mingw.org/wiki/MSYS", - "version": "2.8.7", - "url": [ - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/diffutils/diffutils-2.8.7.20071206cvs-3/diffutils-2.8.7.20071206cvs-3-msys-1.0.13-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/gettext/gettext-0.18.1.1-1/libintl-0.18.1.1-1-msys-1.0.17-dll-8.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/libiconv/libiconv-1.14-1/libiconv-1.14-1-msys-1.0.17-dll-2.tar.lzma" - ], - "hash": [ - "522889b044492dd2337c4752ba6262995a11f352ca5fb8a8660349413ea9b864", - "4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5", - "29db8c969661c511fbe2a341ab25c993c5f9c555842a75d6ddbcfa70dec16910", - "196921e8c232259c8e6a6852b9ee8d9ab2d29a91419f0c8dc27ba6f034231683" - ], - "bin": [ - "bin\\cmp.exe", - "bin\\diff.exe", - "bin\\diff3.exe", - "bin\\sdiff.exe" - ] -} \ No newline at end of file + "homepage": "http://www.mingw.org/wiki/MSYS", + "version": "2.8.7", + "url": [ + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/diffutils/diffutils-2.8.7.20071206cvs-3/diffutils-2.8.7.20071206cvs-3-msys-1.0.13-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/gettext/gettext-0.18.1.1-1/libintl-0.18.1.1-1-msys-1.0.17-dll-8.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/libiconv/libiconv-1.14-1/libiconv-1.14-1-msys-1.0.17-dll-2.tar.lzma" + ], + "hash": [ + "522889b044492dd2337c4752ba6262995a11f352ca5fb8a8660349413ea9b864", + "4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5", + "29db8c969661c511fbe2a341ab25c993c5f9c555842a75d6ddbcfa70dec16910", + "196921e8c232259c8e6a6852b9ee8d9ab2d29a91419f0c8dc27ba6f034231683" + ], + "bin": [ + "bin\\cmp.exe", + "bin\\diff.exe", + "bin\\diff3.exe", + "bin\\sdiff.exe" + ] +} diff --git a/bucket/dig.json b/bucket/dig.json index 8b52e25090..aceec7dd95 100644 --- a/bucket/dig.json +++ b/bucket/dig.json @@ -1,8 +1,8 @@ { "homepage": "https://www.isc.org/", - "license": "https://www.isc.org/downloads/software-support-policy/isc-license/", - "version": "9.9.6", - "url" : "ftp://ftp.isc.org/isc/bind9/9.9.6/BIND9.9.6.x86.zip", - "hash" : "CC03FC37502650D2DCEC6DB3FAA0256672B67B5CCDAF4AA5F8ED08F2F5755452", - "bin": "dig.exe" + "license": "https://www.isc.org/downloads/software-support-policy/isc-license/", + "version": "9.9.6", + "url" : "ftp://ftp.isc.org/isc/bind9/9.9.6/BIND9.9.6.x86.zip", + "hash" : "CC03FC37502650D2DCEC6DB3FAA0256672B67B5CCDAF4AA5F8ED08F2F5755452", + "bin": "dig.exe" } diff --git a/bucket/dnvm.json b/bucket/dnvm.json index 88928e9e0f..2f3643294b 100644 --- a/bucket/dnvm.json +++ b/bucket/dnvm.json @@ -5,7 +5,7 @@ "https://raw.githubusercontent.com/aspnet/Home/dev/dnvm.ps1" ], "homepage": "https://github.com/aspnet/Home", - "env_set": { + "env_set": { "DNX_HOME": "$dir\\.dnx", "DNX_USER_HOME": "$dir\\.dnx" }, diff --git a/bucket/docker-machine.json b/bucket/docker-machine.json index 91480502ab..24766102ee 100644 --- a/bucket/docker-machine.json +++ b/bucket/docker-machine.json @@ -1,19 +1,19 @@ { - "homepage": "https://github.com/docker/machine", - "version": "0.4.0", - "license": "Apache", - "architecture": { - "64bit": { - "url": "https://github.com/docker/machine/releases/download/v0.4.0/docker-machine_windows-amd64.exe", - "hash": "f9be8aea5b8f810f63af0bc45217ae7e035f2778bd7c745f769dfdb85792d1a4" - }, - "32bit": { - "url": "https://github.com/docker/machine/releases/download/v0.4.0/docker-machine_windows-386.exe", - "hash": "49ca50715354e222ec66a96f3e64e5931c3dc0f304649beb3f744c64864717f8" - } - }, - "pre_install": "Rename-Item @(Get-ChildItem $dir\\docker-machine_*.exe)[0] $dir\\docker-machine.exe", - "bin": [ - ["docker-machine.exe", "docker-machine"] - ] + "homepage": "https://github.com/docker/machine", + "version": "0.4.0", + "license": "Apache", + "architecture": { + "64bit": { + "url": "https://github.com/docker/machine/releases/download/v0.4.0/docker-machine_windows-amd64.exe", + "hash": "f9be8aea5b8f810f63af0bc45217ae7e035f2778bd7c745f769dfdb85792d1a4" + }, + "32bit": { + "url": "https://github.com/docker/machine/releases/download/v0.4.0/docker-machine_windows-386.exe", + "hash": "49ca50715354e222ec66a96f3e64e5931c3dc0f304649beb3f744c64864717f8" + } + }, + "pre_install": "Rename-Item @(Get-ChildItem $dir\\docker-machine_*.exe)[0] $dir\\docker-machine.exe", + "bin": [ + ["docker-machine.exe", "docker-machine"] + ] } diff --git a/bucket/docker.json b/bucket/docker.json index 788a25cc21..749eef42b4 100644 --- a/bucket/docker.json +++ b/bucket/docker.json @@ -12,12 +12,12 @@ } }, "homepage": "https://docker.com", - "bin": [ - ["docker-1.8.0.exe", "docker"] + "bin": [ + ["docker-1.8.0.exe", "docker"] ], - "notes": [ + "notes": [ "This is the docker client only. Until the docker daemon can run natively", - "on Windows you will need a Virtual Machine such as Boot2Docker or", + "on Windows you will need a Virtual Machine such as Boot2Docker or", "Docker Machine", "", "Boot2Docker: https://github.com/boot2docker/windows-installer/releases/", diff --git a/bucket/doxygen.json b/bucket/doxygen.json index 5976703534..de66b61a33 100644 --- a/bucket/doxygen.json +++ b/bucket/doxygen.json @@ -1,7 +1,7 @@ { - "homepage": "http://www.doxygen.nl/", + "homepage": "http://www.doxygen.nl/", "license": "GPL2", - "version": "1.8.8", + "version": "1.8.8", "architecture": { "64bit": { "url": "http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.8.windows.x64.bin.zip", @@ -12,8 +12,8 @@ "hash": "d4bd6b3e4279a5533a53533a497e8cb1bd62e9c75007dce693b28d0aac9783f2" } }, - "bin": [ - "doxygen.exe", - "doxyindexer.exe" - ] -} \ No newline at end of file + "bin": [ + "doxygen.exe", + "doxyindexer.exe" + ] +} diff --git a/bucket/elixir.json b/bucket/elixir.json index 8f1212d7c3..8a8c51f410 100644 --- a/bucket/elixir.json +++ b/bucket/elixir.json @@ -1,13 +1,13 @@ { - "homepage": "http://elixir-lang.org/", - "version": "0.10.3", - "depends": "erlang", - "url": "https://github.com/elixir-lang/elixir/releases/download/v0.10.3/v0.10.3.zip", - "hash": "c898906651b3edb40e642221e58642a0abc165c97b3624a251bfe337efae9278", - "bin": [ - "bin\\elixir.bat", - "bin\\elixirc.bat", - "bin\\iex.bat", - "bin\\mix.bat" - ] -} \ No newline at end of file + "homepage": "http://elixir-lang.org/", + "version": "0.10.3", + "depends": "erlang", + "url": "https://github.com/elixir-lang/elixir/releases/download/v0.10.3/v0.10.3.zip", + "hash": "c898906651b3edb40e642221e58642a0abc165c97b3624a251bfe337efae9278", + "bin": [ + "bin\\elixir.bat", + "bin\\elixirc.bat", + "bin\\iex.bat", + "bin\\mix.bat" + ] +} diff --git a/bucket/erlang.json b/bucket/erlang.json index 77de0ec5ac..48a335ad96 100644 --- a/bucket/erlang.json +++ b/bucket/erlang.json @@ -1,23 +1,23 @@ { - "homepage": "http://www.erlang.org", - "version": "R16B02", - "license": "http://www.erlang.org/EPLICENSE", - "architecture": { - "64bit": { - "url": "http://www.erlang.org/download/otp_win64_R16B02.exe#/dl.bz", - "hash": "8f2f50e377319d364938475b1492f44d257eafd67c23f90246799bf87158a452" - }, - "32bit": { - "url": "http://www.erlang.org/download/otp_win32_R16B02.exe#/dl.bz", - "hash": "504a7ce4d44e2558b400e64135b6e164d48980cd27b2f869321c5f4d799198b2" - } - }, - "extract_dir": "$_OUTDIR", - "bin": [ - "bin\\erl.exe", - "bin\\escript.exe" - ], - "post_install": " + "homepage": "http://www.erlang.org", + "version": "R16B02", + "license": "http://www.erlang.org/EPLICENSE", + "architecture": { + "64bit": { + "url": "http://www.erlang.org/download/otp_win64_R16B02.exe#/dl.bz", + "hash": "8f2f50e377319d364938475b1492f44d257eafd67c23f90246799bf87158a452" + }, + "32bit": { + "url": "http://www.erlang.org/download/otp_win32_R16B02.exe#/dl.bz", + "hash": "504a7ce4d44e2558b400e64135b6e164d48980cd27b2f869321c5f4d799198b2" + } + }, + "extract_dir": "$_OUTDIR", + "bin": [ + "bin\\erl.exe", + "bin\\escript.exe" + ], + "post_install": " $ini = \"$dir\\bin\\erl.ini\" $escdir = $dir -replace '\\\\', '\\\\' '[erlang]' | out-file $ini -encoding default @@ -44,4 +44,4 @@ mv \"$dir\\lib\\internal\" \"$dir\\erts-5.10.3\\lib\\internal\" cp \"$dir\\R16B02\\*.boot\" \"$dir\\bin\" mv \"$dir\\R16B02\" \"$dir\\releases\\R16B02\" " -} \ No newline at end of file +} diff --git a/bucket/far.json b/bucket/far.json index bc51fff067..3c47b8b904 100644 --- a/bucket/far.json +++ b/bucket/far.json @@ -1,19 +1,19 @@ { - "homepage": "http://farmanager.com/", - "version": "3.0.4040", - "architecture": { - "64bit": { - "url": "http://farmanager.com/files/Far30b4040.x64.20140810.7z", - "hash": "73d0d9195e3fc589067d3568055c04a6206a417a928ab5b382b586ca3f5080a4" - }, - "32bit": { - "url": "http://farmanager.com/files/Far30b4040.x86.20140810.7z", - "hash": "73d0d9195e3fc589067d3568055c04a6206a417a928ab5b382b586ca3f5080a4" - } - }, - "checkver": { - "url": "http://farmanager.com/download.php?p=64", - "re": "Far Manager v([0-9\\.]+) build ([0-9][0-9][0-9][0-9]) x64" - }, - "bin": "far.exe" -} \ No newline at end of file + "homepage": "http://farmanager.com/", + "version": "3.0.4040", + "architecture": { + "64bit": { + "url": "http://farmanager.com/files/Far30b4040.x64.20140810.7z", + "hash": "73d0d9195e3fc589067d3568055c04a6206a417a928ab5b382b586ca3f5080a4" + }, + "32bit": { + "url": "http://farmanager.com/files/Far30b4040.x86.20140810.7z", + "hash": "73d0d9195e3fc589067d3568055c04a6206a417a928ab5b382b586ca3f5080a4" + } + }, + "checkver": { + "url": "http://farmanager.com/download.php?p=64", + "re": "Far Manager v([0-9\\.]+) build ([0-9][0-9][0-9][0-9]) x64" + }, + "bin": "far.exe" +} diff --git a/bucket/ffmpeg.json b/bucket/ffmpeg.json index fa135557e1..7b912aa0b2 100644 --- a/bucket/ffmpeg.json +++ b/bucket/ffmpeg.json @@ -1,23 +1,23 @@ { - "version": "2015-06-07", - "homepage": "http://ffmpeg.zeranoe.com/builds/", - "license": "GPL3", - "architecture": { - "64bit": { - "url": "http://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20150607-git-42db4aa-win64-static.7z", - "hash": "0F76D2DEE53D2C93F69B34AFB4D444B982B1445E26BB7D32215711890215FE42", - "extract_dir": "ffmpeg-20150607-git-42db4aa-win64-static" - }, - "32bit": { - "url": "http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20150607-git-42db4aa-win32-static.7z", - "hash": "334FE2AE201C01C12DD6C55E6753FA45870C76A144F76A5E026056D6A1FA2F7C", - "extract_dir": "ffmpeg-20150607-git-42db4aa-win32-static" - } - }, - "bin": [ - "bin\\ffmpeg.exe", - "bin\\ffplay.exe", - "bin\\ffprobe.exe" - ], - "checkver": "

Latest Zeranoe FFmpeg Build Version: git-[0-9a-f]{6,8} \\((.*)\\)<\\/h2>" + "version": "2015-06-07", + "homepage": "http://ffmpeg.zeranoe.com/builds/", + "license": "GPL3", + "architecture": { + "64bit": { + "url": "http://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20150607-git-42db4aa-win64-static.7z", + "hash": "0F76D2DEE53D2C93F69B34AFB4D444B982B1445E26BB7D32215711890215FE42", + "extract_dir": "ffmpeg-20150607-git-42db4aa-win64-static" + }, + "32bit": { + "url": "http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20150607-git-42db4aa-win32-static.7z", + "hash": "334FE2AE201C01C12DD6C55E6753FA45870C76A144F76A5E026056D6A1FA2F7C", + "extract_dir": "ffmpeg-20150607-git-42db4aa-win32-static" + } + }, + "bin": [ + "bin\\ffmpeg.exe", + "bin\\ffplay.exe", + "bin\\ffprobe.exe" + ], + "checkver": "

Latest Zeranoe FFmpeg Build Version: git-[0-9a-f]{6,8} \\((.*)\\)<\\/h2>" } diff --git a/bucket/figlet.json b/bucket/figlet.json index d500ced2e1..fcf5c25d9e 100644 --- a/bucket/figlet.json +++ b/bucket/figlet.json @@ -1,7 +1,7 @@ { - "homepage": "https://github.com/lukesampson/figlet", - "version": "1.0-go", - "url": "https://github.com/lukesampson/figlet/releases/download/go-1.0-win/figlet-go-1.0-win.zip", - "hash": "11ee1f4de608d147ab5b61ddb5967730e9b2c1e43f7d2c96582ee260c030e413", - "bin": "figlet.exe" -} \ No newline at end of file + "homepage": "https://github.com/lukesampson/figlet", + "version": "1.0-go", + "url": "https://github.com/lukesampson/figlet/releases/download/go-1.0-win/figlet-go-1.0-win.zip", + "hash": "11ee1f4de608d147ab5b61ddb5967730e9b2c1e43f7d2c96582ee260c030e413", + "bin": "figlet.exe" +} diff --git a/bucket/findutils.json b/bucket/findutils.json index f31dfad8b5..5e35cfa2a3 100644 --- a/bucket/findutils.json +++ b/bucket/findutils.json @@ -1,25 +1,25 @@ { - "homepage": "http://www.mingw.org/wiki/msys", - "version": "4.4.2", - "license": "GPL2", - "url": [ - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.13-2/msysCORE-1.0.13-2-msys-1.0.13-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/gettext/gettext-0.17-2/libintl-0.17-2-msys-dll-8.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/libiconv/libiconv-1.13.1-2/libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/findutils/findutils-4.4.2-2/findutils-4.4.2-2-msys-1.0.13-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/findutils/findutils-4.4.2-2/locate-4.4.2-2-msys-1.0.13-bin.tar.lzma" - ], - "hash": [ - "41c7d5561662e41da74951f373a08a95db40b27b1246227bbbc13abc44976ea7", - "b533de0ee04dc4d53ca745210e41eb9437044ebd367c001f3615092e7214a4a3", - "f13de6d2e3c428e7f9a7251c6b01d6f7569e20f7ac126c68c028eb5f542473bb", - "779e819b7942dc070c45f4cba633e6a9ae4bfe8b506a3541f4ce86ad0595726d", - "3fbb9826feae0698a58c8e1bbaa46caafb2bd07a63c59e33cd4478aee14ee147" - ], - "bin": [ - "bin\\find.exe", - "bin\\oldfind.exe", - "bin\\xargs.exe", - "bin\\locate.exe" - ] -} \ No newline at end of file + "homepage": "http://www.mingw.org/wiki/msys", + "version": "4.4.2", + "license": "GPL2", + "url": [ + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.13-2/msysCORE-1.0.13-2-msys-1.0.13-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/gettext/gettext-0.17-2/libintl-0.17-2-msys-dll-8.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/libiconv/libiconv-1.13.1-2/libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/findutils/findutils-4.4.2-2/findutils-4.4.2-2-msys-1.0.13-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/findutils/findutils-4.4.2-2/locate-4.4.2-2-msys-1.0.13-bin.tar.lzma" + ], + "hash": [ + "41c7d5561662e41da74951f373a08a95db40b27b1246227bbbc13abc44976ea7", + "b533de0ee04dc4d53ca745210e41eb9437044ebd367c001f3615092e7214a4a3", + "f13de6d2e3c428e7f9a7251c6b01d6f7569e20f7ac126c68c028eb5f542473bb", + "779e819b7942dc070c45f4cba633e6a9ae4bfe8b506a3541f4ce86ad0595726d", + "3fbb9826feae0698a58c8e1bbaa46caafb2bd07a63c59e33cd4478aee14ee147" + ], + "bin": [ + "bin\\find.exe", + "bin\\oldfind.exe", + "bin\\xargs.exe", + "bin\\locate.exe" + ] +} diff --git a/bucket/gawk.json b/bucket/gawk.json index daf15d49c3..c2f63fbc09 100644 --- a/bucket/gawk.json +++ b/bucket/gawk.json @@ -1,22 +1,22 @@ { - "homepage": "http://www.mingw.org/wiki/MSYS", - "version": "3.1.7", - "license": "GPL3", - "url": [ - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/gawk/gawk-3.1.7-2/gawk-3.1.7-2-msys-1.0.13-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/gettext/gettext-0.18.1.1-1/libintl-0.18.1.1-1-msys-1.0.17-dll-8.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/libiconv/libiconv-1.14-1/libiconv-1.14-1-msys-1.0.17-dll-2.tar.lzma" - ], - "hash": [ - "eb15478ea76e75b666ad7fc7049de21b9f487e0e1ea0e96d40953a477e91c3dd", - "4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5", - "29db8c969661c511fbe2a341ab25c993c5f9c555842a75d6ddbcfa70dec16910", - "196921e8c232259c8e6a6852b9ee8d9ab2d29a91419f0c8dc27ba6f034231683" - ], - "bin": [ - "bin\\awk.exe", - "bin\\gawk.exe", - "bin\\pgawk.exe" - ] -} \ No newline at end of file + "homepage": "http://www.mingw.org/wiki/MSYS", + "version": "3.1.7", + "license": "GPL3", + "url": [ + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/gawk/gawk-3.1.7-2/gawk-3.1.7-2-msys-1.0.13-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/gettext/gettext-0.18.1.1-1/libintl-0.18.1.1-1-msys-1.0.17-dll-8.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/libiconv/libiconv-1.14-1/libiconv-1.14-1-msys-1.0.17-dll-2.tar.lzma" + ], + "hash": [ + "eb15478ea76e75b666ad7fc7049de21b9f487e0e1ea0e96d40953a477e91c3dd", + "4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5", + "29db8c969661c511fbe2a341ab25c993c5f9c555842a75d6ddbcfa70dec16910", + "196921e8c232259c8e6a6852b9ee8d9ab2d29a91419f0c8dc27ba6f034231683" + ], + "bin": [ + "bin\\awk.exe", + "bin\\gawk.exe", + "bin\\pgawk.exe" + ] +} diff --git a/bucket/gcc.json b/bucket/gcc.json index e2c5c7ccec..c1ba2bb3a8 100644 --- a/bucket/gcc.json +++ b/bucket/gcc.json @@ -1,17 +1,17 @@ { - "homepage": "http://mingw-w64.sourceforge.net/", - "version": "4.8.1", - "architecture": { - "64bit": { - "url": "http://ufpr.dl.sourceforge.net/project/mingwbuilds/host-windows/releases/4.8.1/64-bit/threads-posix/seh/x64-4.8.1-release-posix-seh-rev5.7z", - "hash": "bb8bd0fe45da3ed9412acd5e432f28c8dccc3b559610e43980760314a283168f", - "extract_dir": "mingw64" - }, - "32bit": { - "url": "http://ufpr.dl.sourceforge.net/project/mingwbuilds/host-windows/releases/4.8.1/32-bit/threads-posix/sjlj/x32-4.8.1-release-posix-sjlj-rev5.7z", - "hash": "e438ca54e1df9c45b16898d8e9ee941295ad8cde6f20330294e5be4794988582", - "extract_dir": "mingw32" - } - }, - "env_add_path": "bin" -} \ No newline at end of file + "homepage": "http://mingw-w64.sourceforge.net/", + "version": "4.8.1", + "architecture": { + "64bit": { + "url": "http://ufpr.dl.sourceforge.net/project/mingwbuilds/host-windows/releases/4.8.1/64-bit/threads-posix/seh/x64-4.8.1-release-posix-seh-rev5.7z", + "hash": "bb8bd0fe45da3ed9412acd5e432f28c8dccc3b559610e43980760314a283168f", + "extract_dir": "mingw64" + }, + "32bit": { + "url": "http://ufpr.dl.sourceforge.net/project/mingwbuilds/host-windows/releases/4.8.1/32-bit/threads-posix/sjlj/x32-4.8.1-release-posix-sjlj-rev5.7z", + "hash": "e438ca54e1df9c45b16898d8e9ee941295ad8cde6f20330294e5be4794988582", + "extract_dir": "mingw32" + } + }, + "env_add_path": "bin" +} diff --git a/bucket/gcc45.json b/bucket/gcc45.json index 3e9a113eb1..4105347a52 100644 --- a/bucket/gcc45.json +++ b/bucket/gcc45.json @@ -1,53 +1,53 @@ { - "homepage": "http://www.mingw.org/", - "version": "4.5.2", - "url": [ - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/gcc-core-4.5.2-1-mingw32-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/gcc-c%2B%2B-4.5.2-1-mingw32-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/gcc-objc-4.5.2-1-mingw32-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/libgcc-4.5.2-1-mingw32-dll-1.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/libstdc%2B%2B-4.5.2-1-mingw32-dll-6.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/libobjc-4.5.2-1-mingw32-dll-2.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/libgomp-4.5.2-1-mingw32-dll-1.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/libssp-4.5.2-1-mingw32-dll-0.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/binutils/binutils-2.21/binutils-2.21-2-mingw32-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gmp/gmp-5.0.1-1/libgmp-5.0.1-1-mingw32-dll-10.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gmp/gmp-5.0.1-1/gmp-5.0.1-1-mingw32-dev.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mpc/mpc-0.8.1-1/libmpc-0.8.1-1-mingw32-dll-2.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mpc/mpc-0.8.1-1/mpc-0.8.1-1-mingw32-dev.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mpfr/mpfr-2.4.1-1/libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mpfr/mpfr-2.4.1-1/mpfr-2.4.1-1-mingw32-dev.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/pthreads-w32/pthreads-w32-2.8.0-3/libpthread-2.8.0-3-mingw32-dll-2.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/pthreads-w32/pthreads-w32-2.8.0-3/pthreads-w32-2.8.0-3-mingw32-dev.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mingw-rt/mingwrt-3.18/mingwrt-3.18-mingw32-dll.tar.gz", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mingw-rt/mingwrt-3.18/mingwrt-3.18-mingw32-dev.tar.gz", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/w32api/w32api-3.15/w32api-3.15-1-mingw32-dev.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/libiconv/libiconv-1.13.1-1/libiconv-1.13.1-1-mingw32-dll-2.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/libiconv/libiconv-1.13.1-1/libiconv-1.13.1-1-mingw32-dev.tar.lzma" - ], - "hash": [ - "b53728068b72a87d7144f0f65b83db800885605b78f16bcefad3b2ff7f19956d", - "4dd23fed83b7ebd9c1e9ea0f37ec79e7057784faac17481bb220c137c725429f", - "cd42358f1c510cfd09a9dac45393d7081ac353e6141a404dced87baa4b06a138", - "5b0657df01b23fe5d955d13dde0ac110493a254c93a91f76fb19ce7d138d6245", - "77beebe7a5f48ff66e353f869bcd81399d6ed6f2664552cccfc73cd00116990e", - "798df18c2cfecc996db241819ac5799f3e690cc831d31d9ccf1048f08232741b", - "bb3c1c8e0a7b1e13eecedc5bb27b1b6b5ce4df72997449de336392584b455f3d", - "c9f272760b62ca7b8206f210217c95eca598650ae2468f5eb2ef78b97aa6c3b7", - "c583e553599fcb90cecc1a12a92430123f1bd97a1265972b9c71256efefa05de", - "23e0643d1d6f28d3acb1dcd83e592158b9bfa473fca50005f4474a216b4f2652", - "940475cfe32fba5a64abc6c97841bc7c8363f54fba72a414d439c115191d735c", - "7047bc36a85e96747a4353eb8c3e260b2c8dad2329acfae4ccfe15a0881935b6", - "ffa0865487f0588294e2ec8c1bda067cee5a0c955b7bd1d44a207ab3aca7234b", - "64a36a855e9b7bcd9f806707d65d15a1fba12b63cc0ea4a446ad9506c2430a41", - "c4285009cc850bcaed2d7c587ba365fbe6f7a77e0e369ef43db70d41f8b2726a", - "cbd460dde0b0abfde95b764725f08e02ab4f3af50eea508281041a5726b64e8a", - "5d2f526a96d7563a0e222b7c8d2171162fe6f58bc6abba66d255f6ae124da448", - "11befa7b8adf7b1f4f1c11c8f052f27d07bdd2284c55285b5e6c19e7bbc7b3f4", - "eea8c8cac5a4eedea230ce114fde7ec27d248d9678053c8b0d94b6a988746713", - "5fd2a820784c830008a876124f791ebe3c2031dc281b6be558828f3468f81172", - "6190f910d4f1f45f94ab6bd794f63e285d239a1820a8005680e9fff5a6e63438", - "030692d721c04c7bed9ed51b7f765f8249e4470a20d328a4745b9b643f55589e" - ], - "env_add_path": "bin" -} \ No newline at end of file + "homepage": "http://www.mingw.org/", + "version": "4.5.2", + "url": [ + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/gcc-core-4.5.2-1-mingw32-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/gcc-c%2B%2B-4.5.2-1-mingw32-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/gcc-objc-4.5.2-1-mingw32-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/libgcc-4.5.2-1-mingw32-dll-1.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/libstdc%2B%2B-4.5.2-1-mingw32-dll-6.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/libobjc-4.5.2-1-mingw32-dll-2.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/libgomp-4.5.2-1-mingw32-dll-1.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.5.2-1/libssp-4.5.2-1-mingw32-dll-0.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/binutils/binutils-2.21/binutils-2.21-2-mingw32-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gmp/gmp-5.0.1-1/libgmp-5.0.1-1-mingw32-dll-10.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gmp/gmp-5.0.1-1/gmp-5.0.1-1-mingw32-dev.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mpc/mpc-0.8.1-1/libmpc-0.8.1-1-mingw32-dll-2.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mpc/mpc-0.8.1-1/mpc-0.8.1-1-mingw32-dev.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mpfr/mpfr-2.4.1-1/libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mpfr/mpfr-2.4.1-1/mpfr-2.4.1-1-mingw32-dev.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/pthreads-w32/pthreads-w32-2.8.0-3/libpthread-2.8.0-3-mingw32-dll-2.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/pthreads-w32/pthreads-w32-2.8.0-3/pthreads-w32-2.8.0-3-mingw32-dev.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mingw-rt/mingwrt-3.18/mingwrt-3.18-mingw32-dll.tar.gz", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mingw-rt/mingwrt-3.18/mingwrt-3.18-mingw32-dev.tar.gz", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/w32api/w32api-3.15/w32api-3.15-1-mingw32-dev.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/libiconv/libiconv-1.13.1-1/libiconv-1.13.1-1-mingw32-dll-2.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/libiconv/libiconv-1.13.1-1/libiconv-1.13.1-1-mingw32-dev.tar.lzma" + ], + "hash": [ + "b53728068b72a87d7144f0f65b83db800885605b78f16bcefad3b2ff7f19956d", + "4dd23fed83b7ebd9c1e9ea0f37ec79e7057784faac17481bb220c137c725429f", + "cd42358f1c510cfd09a9dac45393d7081ac353e6141a404dced87baa4b06a138", + "5b0657df01b23fe5d955d13dde0ac110493a254c93a91f76fb19ce7d138d6245", + "77beebe7a5f48ff66e353f869bcd81399d6ed6f2664552cccfc73cd00116990e", + "798df18c2cfecc996db241819ac5799f3e690cc831d31d9ccf1048f08232741b", + "bb3c1c8e0a7b1e13eecedc5bb27b1b6b5ce4df72997449de336392584b455f3d", + "c9f272760b62ca7b8206f210217c95eca598650ae2468f5eb2ef78b97aa6c3b7", + "c583e553599fcb90cecc1a12a92430123f1bd97a1265972b9c71256efefa05de", + "23e0643d1d6f28d3acb1dcd83e592158b9bfa473fca50005f4474a216b4f2652", + "940475cfe32fba5a64abc6c97841bc7c8363f54fba72a414d439c115191d735c", + "7047bc36a85e96747a4353eb8c3e260b2c8dad2329acfae4ccfe15a0881935b6", + "ffa0865487f0588294e2ec8c1bda067cee5a0c955b7bd1d44a207ab3aca7234b", + "64a36a855e9b7bcd9f806707d65d15a1fba12b63cc0ea4a446ad9506c2430a41", + "c4285009cc850bcaed2d7c587ba365fbe6f7a77e0e369ef43db70d41f8b2726a", + "cbd460dde0b0abfde95b764725f08e02ab4f3af50eea508281041a5726b64e8a", + "5d2f526a96d7563a0e222b7c8d2171162fe6f58bc6abba66d255f6ae124da448", + "11befa7b8adf7b1f4f1c11c8f052f27d07bdd2284c55285b5e6c19e7bbc7b3f4", + "eea8c8cac5a4eedea230ce114fde7ec27d248d9678053c8b0d94b6a988746713", + "5fd2a820784c830008a876124f791ebe3c2031dc281b6be558828f3468f81172", + "6190f910d4f1f45f94ab6bd794f63e285d239a1820a8005680e9fff5a6e63438", + "030692d721c04c7bed9ed51b7f765f8249e4470a20d328a4745b9b643f55589e" + ], + "env_add_path": "bin" +} diff --git a/bucket/gibo.json b/bucket/gibo.json index 0e2d457ca4..4c0d18643d 100644 --- a/bucket/gibo.json +++ b/bucket/gibo.json @@ -1,12 +1,12 @@ { - "version": "1.0.4", - "homepage": "https://github.com/simonwhitaker/gibo", - "license": "https://github.com/simonwhitaker/gibo/blob/master/UNLICENSE", - "description": "gibo (short for .gitignore boilerplates) is a shell script to help you easily access .gitignore boilerplates from github.com/github/gitignore.", - "url": "https://github.com/simonwhitaker/gibo/archive/master.zip", - "hash": "b358ab0a2d39e304b3a79660ffebf6b0e99496a8b73854e0d230218cb49fc309", - "extract_dir": "gibo-master", - "bin": [ - "gibo.bat" - ] + "version": "1.0.4", + "homepage": "https://github.com/simonwhitaker/gibo", + "license": "https://github.com/simonwhitaker/gibo/blob/master/UNLICENSE", + "description": "gibo (short for .gitignore boilerplates) is a shell script to help you easily access .gitignore boilerplates from github.com/github/gitignore.", + "url": "https://github.com/simonwhitaker/gibo/archive/master.zip", + "hash": "b358ab0a2d39e304b3a79660ffebf6b0e99496a8b73854e0d230218cb49fc309", + "extract_dir": "gibo-master", + "bin": [ + "gibo.bat" + ] } diff --git a/bucket/git.json b/bucket/git.json index 10c781ce65..0109a640ac 100644 --- a/bucket/git.json +++ b/bucket/git.json @@ -7,10 +7,10 @@ "url": "https://github.com/git-for-windows/git/releases/download/v2.4.6.windows.1/PortableGit-2.4.6-5th-release-candidate-64-bit.7z.exe#/dl.7z", "hash": "cc7d8df6edf7bd3689d685a2da7561ca7aee34936e868b475cddd72bfc6f953b" }, - "32bit": { - "url": "https://github.com/git-for-windows/git/releases/download/v2.4.6.windows.1/PortableGit-2.4.6-5th-release-candidate-32-bit.7z.exe#/dl.7z", - "hash": "1b373b2238f44b0d96ae07a9965399caeb31180bf3cdd6585e3c34a4851dc9c2" - } + "32bit": { + "url": "https://github.com/git-for-windows/git/releases/download/v2.4.6.windows.1/PortableGit-2.4.6-5th-release-candidate-32-bit.7z.exe#/dl.7z", + "hash": "1b373b2238f44b0d96ae07a9965399caeb31180bf3cdd6585e3c34a4851dc9c2" + } }, "bin": [ "cmd\\git.exe", "cmd\\gitk.exe", "cmd\\git-gui.exe" ], "post_install": [ diff --git a/bucket/git19.json b/bucket/git19.json index f33b03305b..0df7d230a1 100644 --- a/bucket/git19.json +++ b/bucket/git19.json @@ -1,15 +1,15 @@ { - "homepage": "http://msysgit.github.io/", - "license": "GPL2", - "version": "1.9.5-preview20150319", - "url": "https://github.com/msysgit/msysgit/releases/download/Git-1.9.5-preview20150319/PortableGit-1.9.5-preview20150319.7z", - "hash": "26261872847b18d171a197c8e4b3f4c0e60b4310c4b8ef1f4d9884950288aa7c", - "bin": [ "cmd\\git.exe", "cmd\\gitk.cmd" ], - "post_install": [ - "git config --global credential.helper wincred" - ], - "checkver": { - "url": "http://git-scm.com/download/win", - "re": "downloading version ([^<]+)" - } + "homepage": "http://msysgit.github.io/", + "license": "GPL2", + "version": "1.9.5-preview20150319", + "url": "https://github.com/msysgit/msysgit/releases/download/Git-1.9.5-preview20150319/PortableGit-1.9.5-preview20150319.7z", + "hash": "26261872847b18d171a197c8e4b3f4c0e60b4310c4b8ef1f4d9884950288aa7c", + "bin": [ "cmd\\git.exe", "cmd\\gitk.cmd" ], + "post_install": [ + "git config --global credential.helper wincred" + ], + "checkver": { + "url": "http://git-scm.com/download/win", + "re": "downloading version ([^<]+)" + } } diff --git a/bucket/go.json b/bucket/go.json index acaf9c39d3..4a4af48cc7 100644 --- a/bucket/go.json +++ b/bucket/go.json @@ -1,21 +1,21 @@ { - "version": "1.4.2", - "homepage": "http://golang.org", - "license": "http://golang.org/LICENSE", - "architecture": { - "64bit": { - "url": "https://storage.googleapis.com/golang/go1.4.2.windows-amd64.zip", - "hash": "sha1:91b229a3ff0a1ce6e791c832b0b4670bfc5457b5" - }, - "32bit": { - "url": "https://storage.googleapis.com/golang/go1.4.2.windows-386.zip", - "hash": "sha1:0e074e66a7816561d7947ff5c3514be96f347dc4" - } - }, - "extract_dir": "go", - "env_add_path": "bin", - "env_set": { - "GOROOT": "$dir" - }, - "checkver": "
\\s*Build version go([0-9\\.]+)\\.
" + "version": "1.4.2", + "homepage": "http://golang.org", + "license": "http://golang.org/LICENSE", + "architecture": { + "64bit": { + "url": "https://storage.googleapis.com/golang/go1.4.2.windows-amd64.zip", + "hash": "sha1:91b229a3ff0a1ce6e791c832b0b4670bfc5457b5" + }, + "32bit": { + "url": "https://storage.googleapis.com/golang/go1.4.2.windows-386.zip", + "hash": "sha1:0e074e66a7816561d7947ff5c3514be96f347dc4" + } + }, + "extract_dir": "go", + "env_add_path": "bin", + "env_set": { + "GOROOT": "$dir" + }, + "checkver": "
\\s*Build version go([0-9\\.]+)\\.
" } diff --git a/bucket/gow.json b/bucket/gow.json index fe6d1080fe..49aa32d496 100644 --- a/bucket/gow.json +++ b/bucket/gow.json @@ -1,139 +1,139 @@ { - "homepage": "https://github.com/bmatzelle/gow", - "version": "0.8.0", - "url": "https://github.com/bmatzelle/gow/releases/download/v0.8.0/Gow-0.8.0.exe#.7z", - "hash": "9b06e0f9471d61d1019bf4d133c0ed23a4ccee27b6b8758a922d681469b82e42", - "extract_dir": "", - "checkver": { - "url": "https://github.com/bmatzelle/gow/releases", - "re": "Gow ([0-9\\.]+)" - }, - "pre_install": " - \"@cscript //NoLogo \"\"$dir\\bin\\gow.vbs\"\" %1\" | Set-Content -force \"$dir\\bin\\gow.bat\" - ", - "post_install": " - # create etc directory (required by bash), if needed - if (! (test-path \"$dir\\etc\")) { new-item -itemtype directory \"$dir\\etc\" } - ", - "bin": [ - "bin\\awk.exe", - "bin\\basename.exe", - "bin\\bash.exe", - "bin\\bc.exe", - "bin\\bison.exe", - "bin\\bunzip2.exe", - "bin\\bzip2.exe", - "bin\\bzip2recover.exe", - "bin\\cat.exe", - "bin\\chgrp.exe", - "bin\\chmod.exe", - "bin\\chown.exe", - "bin\\chroot.exe", - "bin\\cksum.exe", - "bin\\clear.bat", - "bin\\cp.exe", - "bin\\csplit.exe", - "bin\\curl.exe", - "bin\\cut.exe", - "bin\\dc.exe", - "bin\\dd.exe", - "bin\\df.exe", - "bin\\diff.exe", - "bin\\diff3.exe", - "bin\\dirname.exe", - "bin\\dos2unix.exe", - "bin\\du.exe", - "bin\\egrep.exe", - "bin\\env.exe", - "bin\\expand.exe", - "bin\\expr.exe", - "bin\\factor.exe", - "bin\\fgrep.exe", - "bin\\flex.exe", - "bin\\fmt.exe", - "bin\\fold.exe", - "bin\\gawk.exe", - "bin\\gfind.exe", - "bin\\gow.bat", - "bin\\grep.exe", - "bin\\gsar.exe", - "bin\\gsort.exe", - "bin\\gzip.exe", - "bin\\head.exe", - "bin\\hostid.exe", - "bin\\hostname.exe", - "bin\\id.exe", - "bin\\indent.exe", - "bin\\install.exe", - "bin\\join.exe", - "bin\\jwhois.exe", - "bin\\less.exe", - "bin\\lesskey.exe", - "bin\\ln.exe", - "bin\\ls.exe", - "bin\\m4.exe", - "bin\\make.exe", - "bin\\md5sum.exe", - "bin\\mkdir.exe", - "bin\\mkfifo.exe", - "bin\\mknod.exe", - "bin\\mv.exe", - "bin\\nano.exe", - "bin\\ncftp.exe", - "bin\\nl.exe", - "bin\\od.exe", - "bin\\pageant.exe", - "bin\\paste.exe", - "bin\\patch.exe", - "bin\\pathchk.exe", - "bin\\plink.exe", - "bin\\pr.exe", - "bin\\printenv.exe", - "bin\\printf.exe", - "bin\\pscp.exe", - "bin\\psftp.exe", - "bin\\putty.exe", - "bin\\puttygen.exe", - "bin\\pwd.exe", - "bin\\rm.exe", - "bin\\rmdir.exe", - "bin\\scp.bat", - "bin\\sdiff.exe", - "bin\\sed.exe", - "bin\\seq.exe", - "bin\\sftp.bat", - "bin\\sha1sum.exe", - "bin\\shar.exe", - "bin\\sleep.exe", - "bin\\split.exe", - "bin\\ssh.bat", - "bin\\su.exe", - "bin\\sum.exe", - "bin\\sync.exe", - "bin\\tac.exe", - "bin\\tail.exe", - "bin\\tar.exe", - "bin\\tee.exe", - "bin\\test.exe", - "bin\\touch.exe", - "bin\\tr.exe", - "bin\\uname.exe", - "bin\\unexpand.exe", - "bin\\uniq.exe", - "bin\\unix2dos.exe", - "bin\\unlink.exe", - "bin\\unrar.exe", - "bin\\unshar.exe", - "bin\\uudecode.exe", - "bin\\uuencode.exe", - "bin\\vim.exe", - "bin\\wc.exe", - "bin\\wget.exe", - "bin\\whereis.bat", - "bin\\which.exe", - "bin\\whoami.exe", - "bin\\xargs.exe", - "bin\\yes.exe", - "bin\\zip.exe" - ] -} \ No newline at end of file + "homepage": "https://github.com/bmatzelle/gow", + "version": "0.8.0", + "url": "https://github.com/bmatzelle/gow/releases/download/v0.8.0/Gow-0.8.0.exe#.7z", + "hash": "9b06e0f9471d61d1019bf4d133c0ed23a4ccee27b6b8758a922d681469b82e42", + "extract_dir": "", + "checkver": { + "url": "https://github.com/bmatzelle/gow/releases", + "re": "Gow ([0-9\\.]+)" + }, + "pre_install": " + \"@cscript //NoLogo \"\"$dir\\bin\\gow.vbs\"\" %1\" | Set-Content -force \"$dir\\bin\\gow.bat\" + ", + "post_install": " + # create etc directory (required by bash), if needed + if (! (test-path \"$dir\\etc\")) { new-item -itemtype directory \"$dir\\etc\" } + ", + "bin": [ + "bin\\awk.exe", + "bin\\basename.exe", + "bin\\bash.exe", + "bin\\bc.exe", + "bin\\bison.exe", + "bin\\bunzip2.exe", + "bin\\bzip2.exe", + "bin\\bzip2recover.exe", + "bin\\cat.exe", + "bin\\chgrp.exe", + "bin\\chmod.exe", + "bin\\chown.exe", + "bin\\chroot.exe", + "bin\\cksum.exe", + "bin\\clear.bat", + "bin\\cp.exe", + "bin\\csplit.exe", + "bin\\curl.exe", + "bin\\cut.exe", + "bin\\dc.exe", + "bin\\dd.exe", + "bin\\df.exe", + "bin\\diff.exe", + "bin\\diff3.exe", + "bin\\dirname.exe", + "bin\\dos2unix.exe", + "bin\\du.exe", + "bin\\egrep.exe", + "bin\\env.exe", + "bin\\expand.exe", + "bin\\expr.exe", + "bin\\factor.exe", + "bin\\fgrep.exe", + "bin\\flex.exe", + "bin\\fmt.exe", + "bin\\fold.exe", + "bin\\gawk.exe", + "bin\\gfind.exe", + "bin\\gow.bat", + "bin\\grep.exe", + "bin\\gsar.exe", + "bin\\gsort.exe", + "bin\\gzip.exe", + "bin\\head.exe", + "bin\\hostid.exe", + "bin\\hostname.exe", + "bin\\id.exe", + "bin\\indent.exe", + "bin\\install.exe", + "bin\\join.exe", + "bin\\jwhois.exe", + "bin\\less.exe", + "bin\\lesskey.exe", + "bin\\ln.exe", + "bin\\ls.exe", + "bin\\m4.exe", + "bin\\make.exe", + "bin\\md5sum.exe", + "bin\\mkdir.exe", + "bin\\mkfifo.exe", + "bin\\mknod.exe", + "bin\\mv.exe", + "bin\\nano.exe", + "bin\\ncftp.exe", + "bin\\nl.exe", + "bin\\od.exe", + "bin\\pageant.exe", + "bin\\paste.exe", + "bin\\patch.exe", + "bin\\pathchk.exe", + "bin\\plink.exe", + "bin\\pr.exe", + "bin\\printenv.exe", + "bin\\printf.exe", + "bin\\pscp.exe", + "bin\\psftp.exe", + "bin\\putty.exe", + "bin\\puttygen.exe", + "bin\\pwd.exe", + "bin\\rm.exe", + "bin\\rmdir.exe", + "bin\\scp.bat", + "bin\\sdiff.exe", + "bin\\sed.exe", + "bin\\seq.exe", + "bin\\sftp.bat", + "bin\\sha1sum.exe", + "bin\\shar.exe", + "bin\\sleep.exe", + "bin\\split.exe", + "bin\\ssh.bat", + "bin\\su.exe", + "bin\\sum.exe", + "bin\\sync.exe", + "bin\\tac.exe", + "bin\\tail.exe", + "bin\\tar.exe", + "bin\\tee.exe", + "bin\\test.exe", + "bin\\touch.exe", + "bin\\tr.exe", + "bin\\uname.exe", + "bin\\unexpand.exe", + "bin\\uniq.exe", + "bin\\unix2dos.exe", + "bin\\unlink.exe", + "bin\\unrar.exe", + "bin\\unshar.exe", + "bin\\uudecode.exe", + "bin\\uuencode.exe", + "bin\\vim.exe", + "bin\\wc.exe", + "bin\\wget.exe", + "bin\\whereis.bat", + "bin\\which.exe", + "bin\\whoami.exe", + "bin\\xargs.exe", + "bin\\yes.exe", + "bin\\zip.exe" + ] +} diff --git a/bucket/gradle.json b/bucket/gradle.json index 35af2a0d08..21caf5ea7a 100644 --- a/bucket/gradle.json +++ b/bucket/gradle.json @@ -1,10 +1,10 @@ { - "homepage": "http://www.gradle.org", - "version": "2.5", - "license": "Apache 2.0", - "hash": "3F953E0CB14BB3F9EBBE11946E84071547BF5DFD575D90CFE9CC4E788DA38555", - "url": "https://services.gradle.org/distributions/gradle-2.5-bin.zip", - "extract_dir": "gradle-2.5", - "bin": "bin\\gradle.bat", - "depends": "openjdk" + "homepage": "http://www.gradle.org", + "version": "2.5", + "license": "Apache 2.0", + "hash": "3F953E0CB14BB3F9EBBE11946E84071547BF5DFD575D90CFE9CC4E788DA38555", + "url": "https://services.gradle.org/distributions/gradle-2.5-bin.zip", + "extract_dir": "gradle-2.5", + "bin": "bin\\gradle.bat", + "depends": "openjdk" } diff --git a/bucket/graphviz.json b/bucket/graphviz.json index 6d31a03e7e..20a3e67930 100644 --- a/bucket/graphviz.json +++ b/bucket/graphviz.json @@ -1,47 +1,47 @@ { - "homepage": "http://www.graphviz.org/", - "version": "2.38", - "license": "EPL", - "url": "http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.38.msi", - "hash": "c794ea03bc2631fff468f4d97fa6726c536fc98ee579529779aa6f45e94e4f6d", - "bin": [ - "bin/acyclic.exe", - "bin/bcomps.exe", - "bin/ccomps.exe", - "bin/circo.exe", - "bin/dijkstra.exe", - "bin/dot.exe", - "bin/dotty.exe", - "bin/fc-cache.exe", - "bin/fc-cat.exe", - "bin/fc-list.exe", - "bin/fc-match.exe", - "bin/fdp.exe", - "bin/gc.exe", - "bin/gml2gv.exe", - "bin/graphml2gv.exe", - "bin/gv2gml.exe", - "bin/gvcolor.exe", - "bin/gvedit.exe", - "bin/gvgen.exe", - "bin/gvmap.exe", - "bin/gvpack.exe", - "bin/gvpr.exe", - "bin/gxl2gv.exe", - "bin/lefty.exe", - "bin/lneato.exe", - "bin/mingle.exe", - "bin/mm2gv.exe", - "bin/neato.exe", - "bin/nop.exe", - "bin/osage.exe", - "bin/patchwork.exe", - "bin/prune.exe", - "bin/sccmap.exe", - "bin/sfdp.exe", - "bin/smyrna.exe", - "bin/tred.exe", - "bin/twopi.exe", - "bin/unflatten.exe" - ] -} \ No newline at end of file + "homepage": "http://www.graphviz.org/", + "version": "2.38", + "license": "EPL", + "url": "http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.38.msi", + "hash": "c794ea03bc2631fff468f4d97fa6726c536fc98ee579529779aa6f45e94e4f6d", + "bin": [ + "bin/acyclic.exe", + "bin/bcomps.exe", + "bin/ccomps.exe", + "bin/circo.exe", + "bin/dijkstra.exe", + "bin/dot.exe", + "bin/dotty.exe", + "bin/fc-cache.exe", + "bin/fc-cat.exe", + "bin/fc-list.exe", + "bin/fc-match.exe", + "bin/fdp.exe", + "bin/gc.exe", + "bin/gml2gv.exe", + "bin/graphml2gv.exe", + "bin/gv2gml.exe", + "bin/gvcolor.exe", + "bin/gvedit.exe", + "bin/gvgen.exe", + "bin/gvmap.exe", + "bin/gvpack.exe", + "bin/gvpr.exe", + "bin/gxl2gv.exe", + "bin/lefty.exe", + "bin/lneato.exe", + "bin/mingle.exe", + "bin/mm2gv.exe", + "bin/neato.exe", + "bin/nop.exe", + "bin/osage.exe", + "bin/patchwork.exe", + "bin/prune.exe", + "bin/sccmap.exe", + "bin/sfdp.exe", + "bin/smyrna.exe", + "bin/tred.exe", + "bin/twopi.exe", + "bin/unflatten.exe" + ] +} diff --git a/bucket/grep.json b/bucket/grep.json index 0633af00dc..61950e0940 100644 --- a/bucket/grep.json +++ b/bucket/grep.json @@ -1,14 +1,14 @@ { - "homepage": "http://gnuwin32.sourceforge.net/packages/grep.htm", - "version": "2.5.4", - "license": "GPL2", - "url": [ - "http://ufpr.dl.sourceforge.net/project/gnuwin32/grep/2.5.4/grep-2.5.4-bin.zip", - "http://ufpr.dl.sourceforge.net/project/gnuwin32/grep/2.5.4/grep-2.5.4-dep.zip" - ], - "hash": [ - "md5:c1733d1bc0def1e47f99bad83a0e3116", - "md5:cc990f643b460ce4ee37264cc00713c6" - ], - "bin": "bin\\grep.exe" -} \ No newline at end of file + "homepage": "http://gnuwin32.sourceforge.net/packages/grep.htm", + "version": "2.5.4", + "license": "GPL2", + "url": [ + "http://ufpr.dl.sourceforge.net/project/gnuwin32/grep/2.5.4/grep-2.5.4-bin.zip", + "http://ufpr.dl.sourceforge.net/project/gnuwin32/grep/2.5.4/grep-2.5.4-dep.zip" + ], + "hash": [ + "md5:c1733d1bc0def1e47f99bad83a0e3116", + "md5:cc990f643b460ce4ee37264cc00713c6" + ], + "bin": "bin\\grep.exe" +} diff --git a/bucket/groovy.json b/bucket/groovy.json index 239f0a3f40..f1f24b694b 100644 --- a/bucket/groovy.json +++ b/bucket/groovy.json @@ -19,4 +19,4 @@ "GROOVY_HOME": "$dir" }, "depends": "openjdk" -} \ No newline at end of file +} diff --git a/bucket/gzip.json b/bucket/gzip.json index e5aebdbe61..b60fe39b1f 100644 --- a/bucket/gzip.json +++ b/bucket/gzip.json @@ -1,14 +1,14 @@ { - "homepage": "http://www.mingw.org/wiki/msys", - "version": "1.3.12", - "license": "GPL2", - "url": [ - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/gzip/gzip-1.3.12-2/gzip-1.3.12-2-msys-1.0.13-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma" - ], - "hash": [ - "ae0025264557c146044930e5085f1dffd479f2ff21492b1c2454efd689d287be", - "4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5" - ], - "bin": "bin\\gzip.exe" -} \ No newline at end of file + "homepage": "http://www.mingw.org/wiki/msys", + "version": "1.3.12", + "license": "GPL2", + "url": [ + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/gzip/gzip-1.3.12-2/gzip-1.3.12-2-msys-1.0.13-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma" + ], + "hash": [ + "ae0025264557c146044930e5085f1dffd479f2ff21492b1c2454efd689d287be", + "4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5" + ], + "bin": "bin\\gzip.exe" +} diff --git a/bucket/haskell.json b/bucket/haskell.json index 38c5601e78..1a1806523e 100644 --- a/bucket/haskell.json +++ b/bucket/haskell.json @@ -1,25 +1,25 @@ { - "homepage": "http://www.haskell.org", - "version": "2014.2.0.0", - "architecture": { - "64bit": { - "url": "http://www.haskell.org/platform/download/2014.2.0.0/HaskellPlatform-2014.2.0.0-x86_64-setup.exe#/dl.7z", - "hash": "11f09ed6492441d4b3ed61f04614c09ca88244fa18e248f5f22804c9a7bda116" - }, - "32bit": { - "url": "http://www.haskell.org/platform/download/2014.2.0.0/HaskellPlatform-2014.2.0.0-i386-setup.exe#/dl.7z", - "hash": "719bd61329d1cd8c015c700661c7ba02f17c0c1c4a9e87495270132a5be3bbc4" - } - }, - "bin": [ - "bin\\ghc.exe", - "bin\\ghc-pkg.exe", - "bin\\haddock.exe", - "bin\\hp2ps.exe", - "bin\\hpc.exe", - "bin\\hsc2hs.exe", - "bin\\runghc.exe", - "bin\\runhaskell.exe", - "lib\\extralibs\\bin\\cabal.exe" - ] + "homepage": "http://www.haskell.org", + "version": "2014.2.0.0", + "architecture": { + "64bit": { + "url": "http://www.haskell.org/platform/download/2014.2.0.0/HaskellPlatform-2014.2.0.0-x86_64-setup.exe#/dl.7z", + "hash": "11f09ed6492441d4b3ed61f04614c09ca88244fa18e248f5f22804c9a7bda116" + }, + "32bit": { + "url": "http://www.haskell.org/platform/download/2014.2.0.0/HaskellPlatform-2014.2.0.0-i386-setup.exe#/dl.7z", + "hash": "719bd61329d1cd8c015c700661c7ba02f17c0c1c4a9e87495270132a5be3bbc4" + } + }, + "bin": [ + "bin\\ghc.exe", + "bin\\ghc-pkg.exe", + "bin\\haddock.exe", + "bin\\hp2ps.exe", + "bin\\hpc.exe", + "bin\\hsc2hs.exe", + "bin\\runghc.exe", + "bin\\runhaskell.exe", + "lib\\extralibs\\bin\\cabal.exe" + ] } diff --git a/bucket/haxe.json b/bucket/haxe.json index 89752ea55d..f6570125eb 100644 --- a/bucket/haxe.json +++ b/bucket/haxe.json @@ -13,4 +13,4 @@ "HAXEPATH": "$dir" }, "depends": "neko" -} \ No newline at end of file +} diff --git a/bucket/hub.json b/bucket/hub.json index 87121691b0..3214189044 100644 --- a/bucket/hub.json +++ b/bucket/hub.json @@ -17,4 +17,4 @@ "bin": [ "hub.exe" ] -} \ No newline at end of file +} diff --git a/bucket/hugo.json b/bucket/hugo.json index 78487df90f..4d1af44737 100644 --- a/bucket/hugo.json +++ b/bucket/hugo.json @@ -15,4 +15,4 @@ "bin": [ ["hugo_0.14_windows_*.exe", "hugo"] ] -} \ No newline at end of file +} diff --git a/bucket/iconv.json b/bucket/iconv.json index 44ecb0fb36..ee35fa0802 100644 --- a/bucket/iconv.json +++ b/bucket/iconv.json @@ -1,24 +1,24 @@ { - "homepage": "http://www.mingw.org/", - "version": "1.14-3", - "license": "GPLv3+", - "url": [ - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/libiconv/libiconv-1.14-3/libiconv-1.14-3-mingw32-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/libiconv/libiconv-1.14-3/libiconv-1.14-3-mingw32-dll.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gettext/gettext-0.18.3.1-1/gettext-0.18.3.1-1-mingw32-dll.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.8.1-4/gcc-core-4.8.1-4-mingw32-dll.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mpc/mpc-1.0.1-2/mpc-1.0.1-2-mingw32-dll.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mpfr/mpfr-3.1.2-2/mpfr-3.1.2-2-mingw32-dll.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gmp/gmp-5.1.2/gmp-5.1.2-1-mingw32-dll.tar.lzma" - ], - "hash": [ - "540592b29a5964a566127d3e976f0c0df8ffc1137788030c17a44750e7b02340", - "fbdab03c19c6c50f15b58d02a3cb8c31e8d95baafaa67239f389b9023c7757fd", - "3c1daf9fade6342de5bb00aacdf85155eb04b07ee3ffe4b1c33b99692329391f", - "0dab5f923c5d289b8e7e22a3b16ebff5ff8b7c7c0d295ac71806d97ef87b8bee", - "d0cd8770aee5df0f3008f2d11383ed3b9c918902ba43ac20374b91fb37a4e58c", - "063e607c9a576a3ed62d3986f7263cff69cbb5f9e366b981ba36001c08c6a973", - "7fe1d9de26875386c1fbce1f9a971d43c45644b2df3ead2c5ff0042053b5b75d" - ], - "bin": "bin\\iconv.exe" + "homepage": "http://www.mingw.org/", + "version": "1.14-3", + "license": "GPLv3+", + "url": [ + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/libiconv/libiconv-1.14-3/libiconv-1.14-3-mingw32-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/libiconv/libiconv-1.14-3/libiconv-1.14-3-mingw32-dll.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gettext/gettext-0.18.3.1-1/gettext-0.18.3.1-1-mingw32-dll.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-4.8.1-4/gcc-core-4.8.1-4-mingw32-dll.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mpc/mpc-1.0.1-2/mpc-1.0.1-2-mingw32-dll.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/mpfr/mpfr-3.1.2-2/mpfr-3.1.2-2-mingw32-dll.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MinGW/Base/gmp/gmp-5.1.2/gmp-5.1.2-1-mingw32-dll.tar.lzma" + ], + "hash": [ + "540592b29a5964a566127d3e976f0c0df8ffc1137788030c17a44750e7b02340", + "fbdab03c19c6c50f15b58d02a3cb8c31e8d95baafaa67239f389b9023c7757fd", + "3c1daf9fade6342de5bb00aacdf85155eb04b07ee3ffe4b1c33b99692329391f", + "0dab5f923c5d289b8e7e22a3b16ebff5ff8b7c7c0d295ac71806d97ef87b8bee", + "d0cd8770aee5df0f3008f2d11383ed3b9c918902ba43ac20374b91fb37a4e58c", + "063e607c9a576a3ed62d3986f7263cff69cbb5f9e366b981ba36001c08c6a973", + "7fe1d9de26875386c1fbce1f9a971d43c45644b2df3ead2c5ff0042053b5b75d" + ], + "bin": "bin\\iconv.exe" } diff --git a/bucket/innounp.json b/bucket/innounp.json index 811ca7e0cd..1a775a0269 100644 --- a/bucket/innounp.json +++ b/bucket/innounp.json @@ -1,8 +1,8 @@ { - "homepage": "http://innounp.sourceforge.net", - "version": "0.43", - "url": "http://sourceforge.net/projects/innounp/files/innounp/innounp%200.43/innounp043.rar", - "hash": "b03cbbfabd7be82a148aed2a8b4de9f554b40f8dc84e2577420ba2ef7d866338", - "bin": "innounp.exe", - "checkver": ".*?([0-9\\.]+)" + "homepage": "http://innounp.sourceforge.net", + "version": "0.43", + "url": "http://sourceforge.net/projects/innounp/files/innounp/innounp%200.43/innounp043.rar", + "hash": "b03cbbfabd7be82a148aed2a8b4de9f554b40f8dc84e2577420ba2ef7d866338", + "bin": "innounp.exe", + "checkver": ".*?([0-9\\.]+)" } diff --git a/bucket/julia.json b/bucket/julia.json index 3934f5a0a3..8f211d6361 100644 --- a/bucket/julia.json +++ b/bucket/julia.json @@ -1,39 +1,39 @@ { - "homepage": "http://julialang.org", - "version": "0.3.1", - "license": "MIT", - "architecture": { - "64bit": { - "url": "http://s3.amazonaws.com/julialang/bin/winnt/x64/0.3/julia-0.3.1-win64.exe#/dl.7z", - "hash": "9281860af4939b48bb69d87b1c39777ee2e02a5b3d6a70b758b03a1c87bfe2ec" - }, - "32bit": { - "url": "http://s3.amazonaws.com/julialang/bin/winnt/x86/0.3/julia-0.3.1-win32.exe#/dl.7z", - "hash": "214d2a57da9d12ba7e39ef9cb2a41478d0901e1f79943a6c8b54ffe6958e0936" - } - }, - "installer": { - "file": "julia-installer.exe", - "args": [ - "/S", - "/D=$dir" - ] - }, - "uninstaller": { - "file": "uninstall.exe", - "args": "/S" - }, - "env_set": { - "JULIA_HOME": "$dir\\bin", - "JULIA_EXE": "julia.exe", - "JULIA": "$dir\\bin\\julia.exe", - "JL_PRIVATE_LIB_DIR": "bin" - }, - "bin": [ - [ "bin\\julia.exe", "julia" ] - ], - "checkver": { - "url": "http://julialang.org/downloads/", - "re": "

Current Release

\\s*
" - } + "homepage": "http://julialang.org", + "version": "0.3.1", + "license": "MIT", + "architecture": { + "64bit": { + "url": "http://s3.amazonaws.com/julialang/bin/winnt/x64/0.3/julia-0.3.1-win64.exe#/dl.7z", + "hash": "9281860af4939b48bb69d87b1c39777ee2e02a5b3d6a70b758b03a1c87bfe2ec" + }, + "32bit": { + "url": "http://s3.amazonaws.com/julialang/bin/winnt/x86/0.3/julia-0.3.1-win32.exe#/dl.7z", + "hash": "214d2a57da9d12ba7e39ef9cb2a41478d0901e1f79943a6c8b54ffe6958e0936" + } + }, + "installer": { + "file": "julia-installer.exe", + "args": [ + "/S", + "/D=$dir" + ] + }, + "uninstaller": { + "file": "uninstall.exe", + "args": "/S" + }, + "env_set": { + "JULIA_HOME": "$dir\\bin", + "JULIA_EXE": "julia.exe", + "JULIA": "$dir\\bin\\julia.exe", + "JL_PRIVATE_LIB_DIR": "bin" + }, + "bin": [ + [ "bin\\julia.exe", "julia" ] + ], + "checkver": { + "url": "http://julialang.org/downloads/", + "re": "

Current Release

\\s*" + } } diff --git a/bucket/kotlin.json b/bucket/kotlin.json index 8551e9f27d..c4974e592e 100644 --- a/bucket/kotlin.json +++ b/bucket/kotlin.json @@ -14,4 +14,4 @@ "KOTLIN_HOME": "$dir" }, "depends": "openjdk" -} \ No newline at end of file +} diff --git a/bucket/kvm.json b/bucket/kvm.json index 0744936692..74ea2ad447 100644 --- a/bucket/kvm.json +++ b/bucket/kvm.json @@ -5,9 +5,9 @@ "https://raw.githubusercontent.com/aspnet/Home/master/kvm.ps1" ], "homepage": "https://github.com/aspnet/Home", - "env_set": { + "env_set": { "KRE_HOME": "$dir\\.k", - "KRE_USER_HOME": "$dir\\.k" + "KRE_USER_HOME": "$dir\\.k" }, "bin": "kvm.ps1", "post_install": "iex \"kvm upgrade\"" diff --git a/bucket/less.json b/bucket/less.json index 62abf3a46d..7ff792867e 100644 --- a/bucket/less.json +++ b/bucket/less.json @@ -1,14 +1,14 @@ { - "homepage": "http://gnuwin32.sourceforge.net/packages/less.htm", - "version": "394", - "license": "Simplified BSD", - "url": [ - "http://ufpr.dl.sourceforge.net/project/gnuwin32/less/394/less-394-bin.zip", - "http://ufpr.dl.sourceforge.net/project/gnuwin32/less/394/less-394-dep.zip" - ], - "hash": [ - "md5:20f94bcc8a3347bd9a9ca32587d82eae", - "md5:539dce63be2b89a22af7b526d1022f72" - ], - "bin": "bin\\less.exe" -} \ No newline at end of file + "homepage": "http://gnuwin32.sourceforge.net/packages/less.htm", + "version": "394", + "license": "Simplified BSD", + "url": [ + "http://ufpr.dl.sourceforge.net/project/gnuwin32/less/394/less-394-bin.zip", + "http://ufpr.dl.sourceforge.net/project/gnuwin32/less/394/less-394-dep.zip" + ], + "hash": [ + "md5:20f94bcc8a3347bd9a9ca32587d82eae", + "md5:539dce63be2b89a22af7b526d1022f72" + ], + "bin": "bin\\less.exe" +} diff --git a/bucket/ln.json b/bucket/ln.json index 7331155f44..7c32833516 100644 --- a/bucket/ln.json +++ b/bucket/ln.json @@ -1,7 +1,7 @@ { - "homepage": "https://github.com/lukesampson/psutils", - "version": "0.2015.04.25", - "url": "https://raw.githubusercontent.com/lukesampson/psutils/4e363db/ln.ps1", - "hash": "81e9447d5d0108057c54380a8e49f6db9fa5806d2018e7b27bd68f3fb8332b98", - "bin": "ln.ps1" -} \ No newline at end of file + "homepage": "https://github.com/lukesampson/psutils", + "version": "0.2015.04.25", + "url": "https://raw.githubusercontent.com/lukesampson/psutils/4e363db/ln.ps1", + "hash": "81e9447d5d0108057c54380a8e49f6db9fa5806d2018e7b27bd68f3fb8332b98", + "bin": "ln.ps1" +} diff --git a/bucket/mariadb.json b/bucket/mariadb.json index d3593b5748..9cc5b93b11 100644 --- a/bucket/mariadb.json +++ b/bucket/mariadb.json @@ -1,49 +1,49 @@ { - "homepage": "http://mariadb.org", - "version": "10.0.17", - "license": "GPL2", - "architecture": { - "64bit": { - "url": "https://downloads.mariadb.org/f/mariadb-10.0.17/winx64-packages/mariadb-10.0.17-winx64.zip", - "hash": "md5:e1c0bf484eb36c2e7323be0a4262577b", - "extract_dir": "mariadb-10.0.17-winx64" - }, - "32bit": { - "url": "https://downloads.mariadb.org/f/mariadb-10.0.17/win32-packages/mariadb-10.0.17-win32.zip", - "hash": "md5:0ddb1003dc2a39f281b57ca408c5867d", - "extract_dir": "mariadb-10.0.17-win32" - } - }, - "bin": [ - "bin\\aria_chk.exe", - "bin\\aria_dump_log.exe", - "bin\\aria_ftdump.exe", - "bin\\aria_pack.exe", - "bin\\aria_read_log.exe", - "bin\\myisamchk.exe", - "bin\\myisamlog.exe", - "bin\\myisampack.exe", - "bin\\myisam_ftdump.exe", - "bin\\mysql.exe", - "bin\\mysqladmin.exe", - "bin\\mysqlbinlog.exe", - "bin\\mysqlcheck.exe", - "bin\\mysqld.exe", - "bin\\mysqldump.exe", - "bin\\mysqlimport.exe", - "bin\\mysqlshow.exe", - "bin\\mysqlslap.exe", - "bin\\mysqltest.exe", - "bin\\mysqltest_embedded.exe", - "bin\\mysql_client_test.exe", - "bin\\mysql_client_test_embedded.exe", - "bin\\mysql_embedded.exe", - "bin\\mysql_install_db.exe", - "bin\\mysql_plugin.exe", - "bin\\mysql_tzinfo_to_sql.exe", - "bin\\mysql_upgrade.exe", - "bin\\mysql_upgrade_service.exe", - "bin\\mysql_upgrade_wizard.exe", - "bin\\my_print_defaults.exe" - ] + "homepage": "http://mariadb.org", + "version": "10.0.17", + "license": "GPL2", + "architecture": { + "64bit": { + "url": "https://downloads.mariadb.org/f/mariadb-10.0.17/winx64-packages/mariadb-10.0.17-winx64.zip", + "hash": "md5:e1c0bf484eb36c2e7323be0a4262577b", + "extract_dir": "mariadb-10.0.17-winx64" + }, + "32bit": { + "url": "https://downloads.mariadb.org/f/mariadb-10.0.17/win32-packages/mariadb-10.0.17-win32.zip", + "hash": "md5:0ddb1003dc2a39f281b57ca408c5867d", + "extract_dir": "mariadb-10.0.17-win32" + } + }, + "bin": [ + "bin\\aria_chk.exe", + "bin\\aria_dump_log.exe", + "bin\\aria_ftdump.exe", + "bin\\aria_pack.exe", + "bin\\aria_read_log.exe", + "bin\\myisamchk.exe", + "bin\\myisamlog.exe", + "bin\\myisampack.exe", + "bin\\myisam_ftdump.exe", + "bin\\mysql.exe", + "bin\\mysqladmin.exe", + "bin\\mysqlbinlog.exe", + "bin\\mysqlcheck.exe", + "bin\\mysqld.exe", + "bin\\mysqldump.exe", + "bin\\mysqlimport.exe", + "bin\\mysqlshow.exe", + "bin\\mysqlslap.exe", + "bin\\mysqltest.exe", + "bin\\mysqltest_embedded.exe", + "bin\\mysql_client_test.exe", + "bin\\mysql_client_test_embedded.exe", + "bin\\mysql_embedded.exe", + "bin\\mysql_install_db.exe", + "bin\\mysql_plugin.exe", + "bin\\mysql_tzinfo_to_sql.exe", + "bin\\mysql_upgrade.exe", + "bin\\mysql_upgrade_service.exe", + "bin\\mysql_upgrade_wizard.exe", + "bin\\my_print_defaults.exe" + ] } diff --git a/bucket/maven.json b/bucket/maven.json index 8629265ab2..49812feb37 100644 --- a/bucket/maven.json +++ b/bucket/maven.json @@ -1,15 +1,15 @@ { - "homepage": "https://maven.apache.org/", - "version": "3.2.5", - "license": "Apache 2.0", - "url": "http://mirror.rackcentral.com.au/apache/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.zip", - "hash": "b7c558dc0b2ebb604724ccb76e95dc40697d0a5a4112d5b0c8ab9019bc078fd3", - "extract_dir": "apache-maven-3.2.5", - "bin": [ - "bin\\mvn.bat" - ], - "env_set": { - "M2_HOME": "$dir" - }, - "depends": "openjdk" + "homepage": "https://maven.apache.org/", + "version": "3.2.5", + "license": "Apache 2.0", + "url": "http://mirror.rackcentral.com.au/apache/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.zip", + "hash": "b7c558dc0b2ebb604724ccb76e95dc40697d0a5a4112d5b0c8ab9019bc078fd3", + "extract_dir": "apache-maven-3.2.5", + "bin": [ + "bin\\mvn.bat" + ], + "env_set": { + "M2_HOME": "$dir" + }, + "depends": "openjdk" } diff --git a/bucket/mongodb.json b/bucket/mongodb.json index 77efa493c2..d2eb99eef2 100644 --- a/bucket/mongodb.json +++ b/bucket/mongodb.json @@ -1,36 +1,36 @@ { - "homepage": "http://www.mongodb.org", - "version": "2.6.7", - "license": "http://www.mongodb.org/about/licensing/", - "architecture": { - "64bit": { - "url": "https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.6.7.zip", - "hash": "ED2A20B22993F95E365F9E5FE11356AFCD9206EBCF376E5BDFC8B1B2FA5D516B", - "extract_dir": "mongodb-win32-x86_64-2008plus-2.6.7" - }, - "32bit": { - "url": "https://fastdl.mongodb.org/win32/mongodb-win32-i386-2.6.7.zip", - "hash": "1CABE7E7DE91463A563821EF8E914BFA9D2CDAEF27EDFDE5784BDCE003B02AF5", - "extract_dir": "mongodb-win32-i386-2.6.7" - } - }, - "bin": [ - "bin\\bsondump.exe", - "bin\\mongo.exe", - "bin\\mongod.exe", - "bin\\mongodump.exe", - "bin\\mongoexport.exe", - "bin\\mongofiles.exe", - "bin\\mongoimport.exe", - "bin\\mongooplog.exe", - "bin\\mongoperf.exe", - "bin\\mongorestore.exe", - "bin\\mongos.exe", - "bin\\mongostat.exe", - "bin\\mongotop.exe" - ], - "checkver": { - "url": "http://www.mongodb.org/downloads", - "re": "Production Release \\(([^<]+)\\)" - } + "homepage": "http://www.mongodb.org", + "version": "2.6.7", + "license": "http://www.mongodb.org/about/licensing/", + "architecture": { + "64bit": { + "url": "https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.6.7.zip", + "hash": "ED2A20B22993F95E365F9E5FE11356AFCD9206EBCF376E5BDFC8B1B2FA5D516B", + "extract_dir": "mongodb-win32-x86_64-2008plus-2.6.7" + }, + "32bit": { + "url": "https://fastdl.mongodb.org/win32/mongodb-win32-i386-2.6.7.zip", + "hash": "1CABE7E7DE91463A563821EF8E914BFA9D2CDAEF27EDFDE5784BDCE003B02AF5", + "extract_dir": "mongodb-win32-i386-2.6.7" + } + }, + "bin": [ + "bin\\bsondump.exe", + "bin\\mongo.exe", + "bin\\mongod.exe", + "bin\\mongodump.exe", + "bin\\mongoexport.exe", + "bin\\mongofiles.exe", + "bin\\mongoimport.exe", + "bin\\mongooplog.exe", + "bin\\mongoperf.exe", + "bin\\mongorestore.exe", + "bin\\mongos.exe", + "bin\\mongostat.exe", + "bin\\mongotop.exe" + ], + "checkver": { + "url": "http://www.mongodb.org/downloads", + "re": "Production Release \\(([^<]+)\\)" + } } diff --git a/bucket/msys.json b/bucket/msys.json index 2ee2f1fd37..a2a97c6192 100644 --- a/bucket/msys.json +++ b/bucket/msys.json @@ -1,7 +1,7 @@ { - "version": "rev13", - "url": "http://ufpr.dl.sourceforge.net/project/mingwbuilds/external-binary-packages/msys%2B7za%2Bwget%2Bsvn%2Bgit%2Bmercurial%2Bcvs-rev13.7z", - "hash": "5f2ea0c4b714a7d7e704e83040397d0ba7ecaf925afa5512aada180a711ef770", - "extract_dir": "msys", - "bin": "msys.bat" -} \ No newline at end of file + "version": "rev13", + "url": "http://ufpr.dl.sourceforge.net/project/mingwbuilds/external-binary-packages/msys%2B7za%2Bwget%2Bsvn%2Bgit%2Bmercurial%2Bcvs-rev13.7z", + "hash": "5f2ea0c4b714a7d7e704e83040397d0ba7ecaf925afa5512aada180a711ef770", + "extract_dir": "msys", + "bin": "msys.bat" +} diff --git a/bucket/nano.json b/bucket/nano.json index e388752872..c0748b16df 100644 --- a/bucket/nano.json +++ b/bucket/nano.json @@ -1,9 +1,9 @@ { - "homepage": "http://www.nano-editor.org/", - "version": "2.2.6", - "license": "GPL", - "url": "http://www.nano-editor.org/dist/v2.2/NT/nano-2.2.6.zip", - "hash": "87ae7984ab2ded388f5d30388483e8906aa46ac72ff4f2ea12063d0e8deffd62", - "bin": "nano.exe", - "checkver": "Latest Version\\s+([0-9\\.]+) \\(stable\\)" -} \ No newline at end of file + "homepage": "http://www.nano-editor.org/", + "version": "2.2.6", + "license": "GPL", + "url": "http://www.nano-editor.org/dist/v2.2/NT/nano-2.2.6.zip", + "hash": "87ae7984ab2ded388f5d30388483e8906aa46ac72ff4f2ea12063d0e8deffd62", + "bin": "nano.exe", + "checkver": "Latest Version\\s+([0-9\\.]+) \\(stable\\)" +} diff --git a/bucket/neko.json b/bucket/neko.json index ec70280a71..3b8b920e16 100644 --- a/bucket/neko.json +++ b/bucket/neko.json @@ -6,4 +6,4 @@ "hash": "66d3a332b670e5890a451c85eb104db4049aa1ea80fc838be493dd13f4869212", "extract_dir": "neko-2.0.0-win", "env_add_path": "./" -} \ No newline at end of file +} diff --git a/bucket/netcat.json b/bucket/netcat.json index 94f8f13382..d58c040139 100644 --- a/bucket/netcat.json +++ b/bucket/netcat.json @@ -1,8 +1,8 @@ { - "homepage": "http://www.rodneybeede.com/Compile_Netcat_on_Windows_using_MinGW.html", - "version": "1.11", - "url": "http://www.rodneybeede.com/downloads/nc111nt_rodneybeede.zip", - "hash": "cf46a1a2bd75260638598908075ebfa37ac0a5073e9555025895e506fe8a0807", - "extract_dir": "nc111nt_rodneybeede", - "bin": "nc.exe" -} \ No newline at end of file + "homepage": "http://www.rodneybeede.com/Compile_Netcat_on_Windows_using_MinGW.html", + "version": "1.11", + "url": "http://www.rodneybeede.com/downloads/nc111nt_rodneybeede.zip", + "hash": "cf46a1a2bd75260638598908075ebfa37ac0a5073e9555025895e506fe8a0807", + "extract_dir": "nc111nt_rodneybeede", + "bin": "nc.exe" +} diff --git a/bucket/nginx.json b/bucket/nginx.json index 3cc7f169ee..a397d796e9 100644 --- a/bucket/nginx.json +++ b/bucket/nginx.json @@ -1,9 +1,9 @@ { - "homepage": "http://nginx.org", - "version": "1.9.0", - "license": "BSD", - "url": "http://nginx.org/download/nginx-1.9.0.zip", - "hash": "b8fcb510377234fb874d2504e54fe2e7ae09ab8996fe408a3c1a54a709695d65", - "extract_dir": "nginx-1.9.0", - "bin": "nginx.exe" + "homepage": "http://nginx.org", + "version": "1.9.0", + "license": "BSD", + "url": "http://nginx.org/download/nginx-1.9.0.zip", + "hash": "b8fcb510377234fb874d2504e54fe2e7ae09ab8996fe408a3c1a54a709695d65", + "extract_dir": "nginx-1.9.0", + "bin": "nginx.exe" } diff --git a/bucket/nikto.json b/bucket/nikto.json index f5cc051060..74bba10611 100644 --- a/bucket/nikto.json +++ b/bucket/nikto.json @@ -1,9 +1,9 @@ { - "homepage": "http://projects.giacomodrago.com/nikto-win/", - "version": "2.1.5", - "license": "GPL", - "url": "http://projects.giacomodrago.com/nikto-win/nikto-2.1.5-win.7z", - "hash": "c70506872670e7c0cb1b497d732a58e19f9e0934e8b32bf212334aed00fca173", - "extract_dir": "nikto-2.1.5", - "bin": "nikto.bat" + "homepage": "http://projects.giacomodrago.com/nikto-win/", + "version": "2.1.5", + "license": "GPL", + "url": "http://projects.giacomodrago.com/nikto-win/nikto-2.1.5-win.7z", + "hash": "c70506872670e7c0cb1b497d732a58e19f9e0934e8b32bf212334aed00fca173", + "extract_dir": "nikto-2.1.5", + "bin": "nikto.bat" } diff --git a/bucket/ninja.json b/bucket/ninja.json index 2f79835270..fbd5fca919 100644 --- a/bucket/ninja.json +++ b/bucket/ninja.json @@ -7,4 +7,4 @@ "bin": [ "ninja.exe" ] -} \ No newline at end of file +} diff --git a/bucket/nodejs.json b/bucket/nodejs.json index 4c3aecfdbf..c949f547ec 100644 --- a/bucket/nodejs.json +++ b/bucket/nodejs.json @@ -1,21 +1,21 @@ { - "homepage": "http://nodejs.org", - "version": "0.12.7", - "license": "MIT", - "architecture": { - "64bit": { - "url": "http://nodejs.org/dist/v0.12.7/x64/node-v0.12.7-x64.msi", - "hash": "sha1:05cfffda323563c42ff2e461a8e98ee984ad15d1" - }, - "32bit": { - "url": "http://nodejs.org/dist/v0.12.7/node-v0.12.7-x86.msi", - "hash": "sha1:7aa06c0d54c97e5193bafc927dbe1bede308da97" - } - }, - "env_add_path": "nodejs", - "post_install": " + "homepage": "http://nodejs.org", + "version": "0.12.7", + "license": "MIT", + "architecture": { + "64bit": { + "url": "http://nodejs.org/dist/v0.12.7/x64/node-v0.12.7-x64.msi", + "hash": "sha1:05cfffda323563c42ff2e461a8e98ee984ad15d1" + }, + "32bit": { + "url": "http://nodejs.org/dist/v0.12.7/node-v0.12.7-x86.msi", + "hash": "sha1:7aa06c0d54c97e5193bafc927dbe1bede308da97" + } + }, + "env_add_path": "nodejs", + "post_install": " # Remove npmrc that makes global modules get installed in AppData\\Roaming\\npm rm $dir\\nodejs\\node_modules\\npm\\npmrc npm update -g", - "checkver": "

Current Version: v([0-9\\.]+)

" + "checkver": "

Current Version: v([0-9\\.]+)

" } diff --git a/bucket/nuget.json b/bucket/nuget.json index 2b70eee05e..58e5478c35 100644 --- a/bucket/nuget.json +++ b/bucket/nuget.json @@ -1,9 +1,9 @@ { - "homepage": "http://nuget.codeplex.com/", - "version": "2.8.3", - "license": "Apache 2.0", - "url": "http://nuget.org/api/v2/package/NuGet.CommandLine/2.8.3?fn=/dl.zip", - "hash": "cbb474f62f55b292b81a1506ec964d9d547b1723c682fe4c9f38d1ab9c72b27f", - "extract_dir": "tools", - "bin": "nuget.exe" + "homepage": "http://nuget.codeplex.com/", + "version": "2.8.3", + "license": "Apache 2.0", + "url": "http://nuget.org/api/v2/package/NuGet.CommandLine/2.8.3?fn=/dl.zip", + "hash": "cbb474f62f55b292b81a1506ec964d9d547b1723c682fe4c9f38d1ab9c72b27f", + "extract_dir": "tools", + "bin": "nuget.exe" } diff --git a/bucket/octave.json b/bucket/octave.json index 78593c8872..5c25f107f5 100644 --- a/bucket/octave.json +++ b/bucket/octave.json @@ -7,9 +7,9 @@ "homepage": "https://www.gnu.org/software/octave/", "hash": "md5:cc0c58770516c9c8d7659b65a2a4992c", "bin": [ - "bin\\octave.exe", - "bin\\octave-gui.exe", - "bin\\octave-cli.exe", - "bin\\octave-config.exe" + "bin\\octave.exe", + "bin\\octave-gui.exe", + "bin\\octave-cli.exe", + "bin\\octave-config.exe" ] } diff --git a/bucket/openjdk.json b/bucket/openjdk.json index 0cbc32c42b..107047055d 100644 --- a/bucket/openjdk.json +++ b/bucket/openjdk.json @@ -1,21 +1,21 @@ { - "homepage": "https://github.com/alexkasko/openjdk-unofficial-builds", - "version": "1.7.0-u60", - "license": "GPL2", - "architecture": { - "64bit": { - "url": "https://bitbucket.org/alexkasko/openjdk-unofficial-builds/downloads/openjdk-1.7.0-u60-unofficial-windows-amd64-image.zip", - "hash": "a84e4ab93092577cdc45116f5a1b241ba44b4cf23bc9798b997d28476f45d96a", - "extract_dir": "openjdk-1.7.0-u60-unofficial-windows-amd64-image" - }, - "32bit": { - "url": "https://bitbucket.org/alexkasko/openjdk-unofficial-builds/downloads/openjdk-1.7.0-u60-unofficial-windows-i586-image.zip", - "hash": "70691d01a3448d718a9319107fc9ab04cd86020869827573f93df89289258289", - "extract_dir": "openjdk-1.7.0-u60-unofficial-windows-i586-image" - } - }, - "env_add_path": "bin", - "env_set": { - "JAVA_HOME": "$dir" - } -} \ No newline at end of file + "homepage": "https://github.com/alexkasko/openjdk-unofficial-builds", + "version": "1.7.0-u60", + "license": "GPL2", + "architecture": { + "64bit": { + "url": "https://bitbucket.org/alexkasko/openjdk-unofficial-builds/downloads/openjdk-1.7.0-u60-unofficial-windows-amd64-image.zip", + "hash": "a84e4ab93092577cdc45116f5a1b241ba44b4cf23bc9798b997d28476f45d96a", + "extract_dir": "openjdk-1.7.0-u60-unofficial-windows-amd64-image" + }, + "32bit": { + "url": "https://bitbucket.org/alexkasko/openjdk-unofficial-builds/downloads/openjdk-1.7.0-u60-unofficial-windows-i586-image.zip", + "hash": "70691d01a3448d718a9319107fc9ab04cd86020869827573f93df89289258289", + "extract_dir": "openjdk-1.7.0-u60-unofficial-windows-i586-image" + } + }, + "env_add_path": "bin", + "env_set": { + "JAVA_HOME": "$dir" + } +} diff --git a/bucket/openssh.json b/bucket/openssh.json index d710ae532b..c3592b3f8f 100644 --- a/bucket/openssh.json +++ b/bucket/openssh.json @@ -1,30 +1,30 @@ { - "version": "5.4p1-1", - "license": "http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/LICENCE?rev=HEAD", - "url": [ - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/openssh/openssh-5.4p1-1/openssh-5.4p1-1-msys-1.0.13-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/openssh/openssh-5.4p1-1/openssh-5.4p1-1-msys-1.0.13-lic.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.13-2/msysCORE-1.0.13-2-msys-1.0.13-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/zlib/zlib-1.2.3-2/zlib-1.2.3-2-msys-1.0.13-dll.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/minires/minires-1.02_1-2/libminires-1.02_1-2-msys-1.0.13-dll.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/openssl/openssl-1.0.0-1/libopenssl-1.0.0-1-msys-1.0.13-dll-100.tar.lzma" - ], - "hash": [ - "8c8e6a030a34c341394bb8b9f1760743468a8cc5e4244efc34f7ab3cd3e67b64", - "edef96034d9ec958b9a58023bcfef54bb4f6b56c6df94c2cced178a675cc3a98", - "41c7d5561662e41da74951f373a08a95db40b27b1246227bbbc13abc44976ea7", - "4178940828b928b2d5a33042cc83fbb992b4bfb9ffeaef6dc3e555f2a6a8c0d1", - "e42fbdcff71404a76306f3b8f0024f453aafa7fe7dd9dac43c82b2e8d33e23f1", - "463ed0e62cc5ae102a8e2f4d30e665507cf8a3930f23668629eea48cb4dda71c" - ], - "bin": [ - "bin\\scp.exe", - "bin\\sftp.exe", - "bin\\slogin.exe", - "bin\\ssh-add.exe", - "bin\\ssh-agent.exe", - "bin\\ssh-keygen.exe", - "bin\\ssh-keyscan.exe", - "bin\\ssh.exe" - ] -} \ No newline at end of file + "version": "5.4p1-1", + "license": "http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/LICENCE?rev=HEAD", + "url": [ + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/openssh/openssh-5.4p1-1/openssh-5.4p1-1-msys-1.0.13-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/openssh/openssh-5.4p1-1/openssh-5.4p1-1-msys-1.0.13-lic.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.13-2/msysCORE-1.0.13-2-msys-1.0.13-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/zlib/zlib-1.2.3-2/zlib-1.2.3-2-msys-1.0.13-dll.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/minires/minires-1.02_1-2/libminires-1.02_1-2-msys-1.0.13-dll.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/openssl/openssl-1.0.0-1/libopenssl-1.0.0-1-msys-1.0.13-dll-100.tar.lzma" + ], + "hash": [ + "8c8e6a030a34c341394bb8b9f1760743468a8cc5e4244efc34f7ab3cd3e67b64", + "edef96034d9ec958b9a58023bcfef54bb4f6b56c6df94c2cced178a675cc3a98", + "41c7d5561662e41da74951f373a08a95db40b27b1246227bbbc13abc44976ea7", + "4178940828b928b2d5a33042cc83fbb992b4bfb9ffeaef6dc3e555f2a6a8c0d1", + "e42fbdcff71404a76306f3b8f0024f453aafa7fe7dd9dac43c82b2e8d33e23f1", + "463ed0e62cc5ae102a8e2f4d30e665507cf8a3930f23668629eea48cb4dda71c" + ], + "bin": [ + "bin\\scp.exe", + "bin\\sftp.exe", + "bin\\slogin.exe", + "bin\\ssh-add.exe", + "bin\\ssh-agent.exe", + "bin\\ssh-keygen.exe", + "bin\\ssh-keyscan.exe", + "bin\\ssh.exe" + ] +} diff --git a/bucket/openssl.json b/bucket/openssl.json index 9fc6068d29..bf6199312a 100644 --- a/bucket/openssl.json +++ b/bucket/openssl.json @@ -1,18 +1,18 @@ { - "homepage": "http://slproweb.com/products/Win32OpenSSL.html", - "version": "1.0.2b", - "license": "https://www.openssl.org/source/license.html", - "architecture": { - "64bit": { - "url": "http://slproweb.com/download/Win64OpenSSL-1_0_2b.exe", - "hash": "e95f5b70e0275d5766348f4ab8120b5ad82e9af69242665777cb4300dee216a5" - }, - "32bit": { - "url": "http://slproweb.com/download/Win32OpenSSL-1_0_2b.exe", - "hash": "3a017ee86a8e22304dadd960524546fb65ab80cb75b058f46b719ec244c40c23" - } - }, - "innosetup": true, - "bin": "bin\\openssl.exe", - "checkver": "Win32 OpenSSL v([^ ]+) Light" + "homepage": "http://slproweb.com/products/Win32OpenSSL.html", + "version": "1.0.2b", + "license": "https://www.openssl.org/source/license.html", + "architecture": { + "64bit": { + "url": "http://slproweb.com/download/Win64OpenSSL-1_0_2b.exe", + "hash": "e95f5b70e0275d5766348f4ab8120b5ad82e9af69242665777cb4300dee216a5" + }, + "32bit": { + "url": "http://slproweb.com/download/Win32OpenSSL-1_0_2b.exe", + "hash": "3a017ee86a8e22304dadd960524546fb65ab80cb75b058f46b719ec244c40c23" + } + }, + "innosetup": true, + "bin": "bin\\openssl.exe", + "checkver": "Win32 OpenSSL v([^ ]+) Light" } diff --git a/bucket/patch.json b/bucket/patch.json index e293d2536b..a94c8ec040 100644 --- a/bucket/patch.json +++ b/bucket/patch.json @@ -1,13 +1,13 @@ { - "homepage": "http://www.mingw.org/wiki/MSYS", - "version": "2.6.1", - "url": [ - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/patch/patch-2.6.1-1/patch-2.6.1-1-msys-1.0.13-bin.tar.lzma" - ], - "hash": [ - "4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5", - "c8b7771304fb5e9fc33d8fca9045402f2e1bca055bf0b28127f3c3e85a254f67" - ], - "bin": "bin\\patch.exe" -} \ No newline at end of file + "homepage": "http://www.mingw.org/wiki/MSYS", + "version": "2.6.1", + "url": [ + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/patch/patch-2.6.1-1/patch-2.6.1-1-msys-1.0.13-bin.tar.lzma" + ], + "hash": [ + "4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5", + "c8b7771304fb5e9fc33d8fca9045402f2e1bca055bf0b28127f3c3e85a254f67" + ], + "bin": "bin\\patch.exe" +} diff --git a/bucket/perl.json b/bucket/perl.json index 7e4225cce5..9aab8a0d59 100644 --- a/bucket/perl.json +++ b/bucket/perl.json @@ -1,23 +1,23 @@ { - "homepage": "http://strawberryperl.com", - "version": "5.20.1.1", - "license": "GPL", - "architecture": { - "32bit": { - "url": "http://strawberryperl.com/download/5.20.1.1/strawberry-perl-5.20.1.1-32bit-portable.zip", - "hash": "sha1:6929ca3d0b65e514ed73c829f6f648f92cc47b80" - }, - "64bit": { - "url": "http://strawberryperl.com/download/5.20.1.1/strawberry-perl-5.20.1.1-64bit-portable.zip", - "hash": "sha1:844e7c2d741bda915ece0688bf3a00ab12577460" - } - }, - "post_install":" - # enable standard idiomatic access to user's home directory - ## remove HomeDir section from portable.perl (disables Portable.pm override of File::HomeDir) - ## NOTE: conversion to byte[] avoids adding an extra trailing newline to the output file - [byte[]][char[]]((Get-Content -raw $dir\\portable.perl) -replace \"(?ms)^HomeDir:.*?^(?=\\S)\",\"\") | Set-Content $dir\\portable.perl -encoding byte - ", - "env_add_path": [ "perl\\site\\bin", "perl\\bin", "c\\bin" ], - "checkver": "Recommended version:

\\s*]*>Strawberry Perl ([0-9\\.]+) \\(32bit\\)" + "homepage": "http://strawberryperl.com", + "version": "5.20.1.1", + "license": "GPL", + "architecture": { + "32bit": { + "url": "http://strawberryperl.com/download/5.20.1.1/strawberry-perl-5.20.1.1-32bit-portable.zip", + "hash": "sha1:6929ca3d0b65e514ed73c829f6f648f92cc47b80" + }, + "64bit": { + "url": "http://strawberryperl.com/download/5.20.1.1/strawberry-perl-5.20.1.1-64bit-portable.zip", + "hash": "sha1:844e7c2d741bda915ece0688bf3a00ab12577460" + } + }, + "post_install":" + # enable standard idiomatic access to user's home directory + ## remove HomeDir section from portable.perl (disables Portable.pm override of File::HomeDir) + ## NOTE: conversion to byte[] avoids adding an extra trailing newline to the output file + [byte[]][char[]]((Get-Content -raw $dir\\portable.perl) -replace \"(?ms)^HomeDir:.*?^(?=\\S)\",\"\") | Set-Content $dir\\portable.perl -encoding byte + ", + "env_add_path": [ "perl\\site\\bin", "perl\\bin", "c\\bin" ], + "checkver": "Recommended version:

\\s*]*>Strawberry Perl ([0-9\\.]+) \\(32bit\\)" } diff --git a/bucket/pester.json b/bucket/pester.json index e37f65788b..43f79b56a0 100644 --- a/bucket/pester.json +++ b/bucket/pester.json @@ -6,7 +6,7 @@ "hash": "38a9ae3c829b02fe90fb8acbed564ffb883fb0175a6a00b501ac3663f03d6b9a", "extract_dir": "pester-3.3.6", "bin": "bin\\pester.bat", - "post_install": " + "post_install": " $import = \"try { `$null = gcm pester -ea stop; import-module `\"$dir\\pester.psm1`\" } catch { }\" if($profile) { @@ -14,7 +14,7 @@ if(!(test-path $profile)) { 'powershell profile doesn''t exist. creating...' $profile_dir = split-path $profile - if(!(test-path $profile_dir)) { mkdir $profile_dir > $null } + if(!(test-path $profile_dir)) { mkdir $profile_dir > $null } '' > $profile } diff --git a/bucket/php.json b/bucket/php.json index acd1d3f396..f23b5d598c 100644 --- a/bucket/php.json +++ b/bucket/php.json @@ -1,14 +1,14 @@ { - "homepage": "http://windows.php.net", - "version": "5.6.12", - "license": "http://www.php.net/license/", - "url": "http://windows.php.net/downloads/releases/php-5.6.12-Win32-VC11-x86.zip", - "hash": "sha1:107f91cee686e18c695ebaa633efaabca9149d8c", - "bin": "php.exe", - "post_install": "cp \"$dir\\php.ini-production\" \"$dir\\php.ini\"", - "checkver": { - "url": "http://windows.php.net/download/", - "re": "

.*?\\(([0-9\\.]+)\\)

" - } + "homepage": "http://windows.php.net", + "version": "5.6.12", + "license": "http://www.php.net/license/", + "url": "http://windows.php.net/downloads/releases/php-5.6.12-Win32-VC11-x86.zip", + "hash": "sha1:107f91cee686e18c695ebaa633efaabca9149d8c", + "bin": "php.exe", + "post_install": "cp \"$dir\\php.ini-production\" \"$dir\\php.ini\"", + "checkver": { + "url": "http://windows.php.net/download/", + "re": "

.*?\\(([0-9\\.]+)\\)

" + } } diff --git a/bucket/php52.json b/bucket/php52.json index 97f435904b..dfb0a5b4cb 100644 --- a/bucket/php52.json +++ b/bucket/php52.json @@ -1,9 +1,9 @@ { - "homepage": "http://windows.php.net", - "version": "5.2.9-2", - "license": "http://www.php.net/license/", - "url": "http://windows.php.net/downloads/releases/archives/php-5.2.9-2-Win32-VC6-x86.zip", - "hash": "sha1:6069BC2BEE6928F5B053CDFD65EBF709F902F3CA", - "bin": "php.exe", - "post_install": "cp \"$dir\\php.ini-production\" \"$dir\\php.ini\"" + "homepage": "http://windows.php.net", + "version": "5.2.9-2", + "license": "http://www.php.net/license/", + "url": "http://windows.php.net/downloads/releases/archives/php-5.2.9-2-Win32-VC6-x86.zip", + "hash": "sha1:6069BC2BEE6928F5B053CDFD65EBF709F902F3CA", + "bin": "php.exe", + "post_install": "cp \"$dir\\php.ini-production\" \"$dir\\php.ini\"" } diff --git a/bucket/php53.json b/bucket/php53.json index 23dd394fc2..63cd5b91c3 100644 --- a/bucket/php53.json +++ b/bucket/php53.json @@ -1,9 +1,9 @@ { - "homepage": "http://windows.php.net", - "version": "5.3.29", - "license": "http://www.php.net/license/", - "url": "http://windows.php.net/downloads/releases/archives/php-5.3.29-Win32-VC9-x86.zip", - "hash": "sha1:61615fe9db85c3ab630fe35673a1b6f45782e5d4", - "bin": "php.exe", - "post_install": "cp \"$dir\\php.ini-production\" \"$dir\\php.ini\"" + "homepage": "http://windows.php.net", + "version": "5.3.29", + "license": "http://www.php.net/license/", + "url": "http://windows.php.net/downloads/releases/archives/php-5.3.29-Win32-VC9-x86.zip", + "hash": "sha1:61615fe9db85c3ab630fe35673a1b6f45782e5d4", + "bin": "php.exe", + "post_install": "cp \"$dir\\php.ini-production\" \"$dir\\php.ini\"" } diff --git a/bucket/php54.json b/bucket/php54.json index b8ff6be5b1..e69c412231 100644 --- a/bucket/php54.json +++ b/bucket/php54.json @@ -1,13 +1,13 @@ { - "homepage": "http://windows.php.net", - "version": "5.4.43", - "license": "http://www.php.net/license/", - "url": "http://windows.php.net/downloads/releases/php-5.4.43-Win32-VC9-x86.zip", - "hash": "sha1:cd32e55ba56f6b489b90e06a81e64138792ab858", - "bin": "php.exe", - "post_install": "cp \"$dir\\php.ini-production\" \"$dir\\php.ini\"", - "checkver": { - "url": "http://windows.php.net/download/", - "re": "

.*?\\(([0-9\\.]+)\\)

" - } + "homepage": "http://windows.php.net", + "version": "5.4.43", + "license": "http://www.php.net/license/", + "url": "http://windows.php.net/downloads/releases/php-5.4.43-Win32-VC9-x86.zip", + "hash": "sha1:cd32e55ba56f6b489b90e06a81e64138792ab858", + "bin": "php.exe", + "post_install": "cp \"$dir\\php.ini-production\" \"$dir\\php.ini\"", + "checkver": { + "url": "http://windows.php.net/download/", + "re": "

.*?\\(([0-9\\.]+)\\)

" + } } diff --git a/bucket/php55.json b/bucket/php55.json index 10d81edab2..3ac70d6dbd 100644 --- a/bucket/php55.json +++ b/bucket/php55.json @@ -1,13 +1,13 @@ { - "homepage": "http://windows.php.net", - "version": "5.5.27", - "license": "http://www.php.net/license/", - "url": "http://windows.php.net/downloads/releases/php-5.5.27-Win32-VC11-x86.zip", - "hash": "sha1:3a21e4fd310ce19867c79a8dabe6ac24848f97f7", - "bin": "php.exe", - "post_install": "cp \"$dir\\php.ini-production\" \"$dir\\php.ini\"", - "checkver": { - "url": "http://windows.php.net/download/", - "re": "

.*?\\(([0-9\\.]+)\\)

" - } + "homepage": "http://windows.php.net", + "version": "5.5.27", + "license": "http://www.php.net/license/", + "url": "http://windows.php.net/downloads/releases/php-5.5.27-Win32-VC11-x86.zip", + "hash": "sha1:3a21e4fd310ce19867c79a8dabe6ac24848f97f7", + "bin": "php.exe", + "post_install": "cp \"$dir\\php.ini-production\" \"$dir\\php.ini\"", + "checkver": { + "url": "http://windows.php.net/download/", + "re": "

.*?\\(([0-9\\.]+)\\)

" + } } diff --git a/bucket/postgresql.json b/bucket/postgresql.json index 6e4b6cb788..88f38feafc 100644 --- a/bucket/postgresql.json +++ b/bucket/postgresql.json @@ -1,55 +1,55 @@ { - "homepage": "http://www.postgresql.org/", - "version": "9.3.0", - "license": "http://www.postgresql.org/about/licence/", - "architecture": { - "64bit": { - "url": "http://get.enterprisedb.com/postgresql/postgresql-9.3.0-1-windows-x64-binaries.zip", - "hash": "e6467ab923b355942ae0ff7dd4365e4e292c29f0d14f0c94874623779351f952" - }, - "32bit": { - "url": "http://get.enterprisedb.com/postgresql/postgresql-9.3.0-1-windows-binaries.zip", - "hash": "391c7963edbfc036c6c4cf256930323286b0ca2384cf2c2e0ae8ad7a47778553" - } - }, - "extract_dir": "pgsql", - "bin": [ - "bin\\clusterdb.exe", - "bin\\createdb.exe", - "bin\\createlang.exe", - "bin\\createuser.exe", - "bin\\dropdb.exe", - "bin\\droplang.exe", - "bin\\dropuser.exe", - "bin\\ecpg.exe", - "bin\\initdb.exe", - "bin\\isolationtester.exe", - "bin\\oid2name.exe", - "bin\\pg_archivecleanup.exe", - "bin\\pg_basebackup.exe", - "bin\\pg_config.exe", - "bin\\pg_controldata.exe", - "bin\\pg_ctl.exe", - "bin\\pg_dump.exe", - "bin\\pg_dumpall.exe", - "bin\\pg_isolation_regress.exe", - "bin\\pg_receivexlog.exe", - "bin\\pg_regress.exe", - "bin\\pg_regress_ecpg.exe", - "bin\\pg_resetxlog.exe", - "bin\\pg_restore.exe", - "bin\\pg_standby.exe", - "bin\\pg_test_fsync.exe", - "bin\\pg_test_timing.exe", - "bin\\pg_upgrade.exe", - "bin\\pgAdmin3.exe", - "bin\\pgbench.exe", - "bin\\postgres.exe", - "bin\\psql.exe", - "bin\\reindexdb.exe", - "bin\\stackbuilder.exe", - "bin\\vacuumdb.exe", - "bin\\vacuumlo.exe", - "bin\\zic.exe" - ] -} \ No newline at end of file + "homepage": "http://www.postgresql.org/", + "version": "9.3.0", + "license": "http://www.postgresql.org/about/licence/", + "architecture": { + "64bit": { + "url": "http://get.enterprisedb.com/postgresql/postgresql-9.3.0-1-windows-x64-binaries.zip", + "hash": "e6467ab923b355942ae0ff7dd4365e4e292c29f0d14f0c94874623779351f952" + }, + "32bit": { + "url": "http://get.enterprisedb.com/postgresql/postgresql-9.3.0-1-windows-binaries.zip", + "hash": "391c7963edbfc036c6c4cf256930323286b0ca2384cf2c2e0ae8ad7a47778553" + } + }, + "extract_dir": "pgsql", + "bin": [ + "bin\\clusterdb.exe", + "bin\\createdb.exe", + "bin\\createlang.exe", + "bin\\createuser.exe", + "bin\\dropdb.exe", + "bin\\droplang.exe", + "bin\\dropuser.exe", + "bin\\ecpg.exe", + "bin\\initdb.exe", + "bin\\isolationtester.exe", + "bin\\oid2name.exe", + "bin\\pg_archivecleanup.exe", + "bin\\pg_basebackup.exe", + "bin\\pg_config.exe", + "bin\\pg_controldata.exe", + "bin\\pg_ctl.exe", + "bin\\pg_dump.exe", + "bin\\pg_dumpall.exe", + "bin\\pg_isolation_regress.exe", + "bin\\pg_receivexlog.exe", + "bin\\pg_regress.exe", + "bin\\pg_regress_ecpg.exe", + "bin\\pg_resetxlog.exe", + "bin\\pg_restore.exe", + "bin\\pg_standby.exe", + "bin\\pg_test_fsync.exe", + "bin\\pg_test_timing.exe", + "bin\\pg_upgrade.exe", + "bin\\pgAdmin3.exe", + "bin\\pgbench.exe", + "bin\\postgres.exe", + "bin\\psql.exe", + "bin\\reindexdb.exe", + "bin\\stackbuilder.exe", + "bin\\vacuumdb.exe", + "bin\\vacuumlo.exe", + "bin\\zic.exe" + ] +} diff --git a/bucket/premake4.json b/bucket/premake4.json index a9143cb1d0..202fafc9a5 100644 --- a/bucket/premake4.json +++ b/bucket/premake4.json @@ -7,4 +7,4 @@ "bin": [ "premake4.exe" ] -} \ No newline at end of file +} diff --git a/bucket/premake5.json b/bucket/premake5.json index 2eb6c5ee6d..d344544666 100644 --- a/bucket/premake5.json +++ b/bucket/premake5.json @@ -11,4 +11,4 @@ "url": "https://premake.github.io/download.html", "re": "(5[0-9.]+-?(alpha|beta)?[0-9.]?)-windows.zip" } -} \ No newline at end of file +} diff --git a/bucket/pshazz.json b/bucket/pshazz.json index e7c5adea3b..6ae899bcce 100644 --- a/bucket/pshazz.json +++ b/bucket/pshazz.json @@ -1,8 +1,8 @@ { - "version": "0.2014.11.25", - "url": "https://github.com/lukesampson/pshazz/archive/3b7b426320e42718b7ef3b0ebf9bbe06c6ee0430.zip", - "extract_dir": "pshazz-3b7b426320e42718b7ef3b0ebf9bbe06c6ee0430", - "hash": "b8ee4ccffa719bbe97b47856457592f13ce4103e92b6bb41ff421a00f21bb08a", - "bin": [ "bin\\pshazz.ps1" ], - "installer": { "file": "bin\\install.ps1" } + "version": "0.2014.11.25", + "url": "https://github.com/lukesampson/pshazz/archive/3b7b426320e42718b7ef3b0ebf9bbe06c6ee0430.zip", + "extract_dir": "pshazz-3b7b426320e42718b7ef3b0ebf9bbe06c6ee0430", + "hash": "b8ee4ccffa719bbe97b47856457592f13ce4103e92b6bb41ff421a00f21bb08a", + "bin": [ "bin\\pshazz.ps1" ], + "installer": { "file": "bin\\install.ps1" } } diff --git a/bucket/python.json b/bucket/python.json index cc031ba030..5c33a27b7f 100644 --- a/bucket/python.json +++ b/bucket/python.json @@ -1,45 +1,45 @@ { - "homepage": "http://www.python.org", - "license": "http://docs.python.org/3.4/license", - "version": "3.4.3", - "architecture": { - "64bit": { - "url": "https://www.python.org/ftp/python/3.4.3/python-3.4.3.amd64.msi", - "hash": "md5:f6ade29acaf8fcdc0463e69a6e7ccf87" - }, - "32bit": { - "url": "https://www.python.org/ftp/python/3.4.3/python-3.4.3.msi", - "hash": "md5:cb450d1cc616bfc8f7a2d6bd88780bf6" - } - }, - "bin": [ - "python.exe", - "py.exe", - "pythonw.exe", - [ "python.exe", "python3" ] - ], - "env_add_path": [ "scripts" ], - "post_install": " - python -m ensurepip; cp (gcm pip3).path \"$(split-path (gcm pip3).path)/pip.exe\" + "homepage": "http://www.python.org", + "license": "http://docs.python.org/3.4/license", + "version": "3.4.3", + "architecture": { + "64bit": { + "url": "https://www.python.org/ftp/python/3.4.3/python-3.4.3.amd64.msi", + "hash": "md5:f6ade29acaf8fcdc0463e69a6e7ccf87" + }, + "32bit": { + "url": "https://www.python.org/ftp/python/3.4.3/python-3.4.3.msi", + "hash": "md5:cb450d1cc616bfc8f7a2d6bd88780bf6" + } + }, + "bin": [ + "python.exe", + "py.exe", + "pythonw.exe", + [ "python.exe", "python3" ] + ], + "env_add_path": [ "scripts" ], + "post_install": " + python -m ensurepip; cp (gcm pip3).path \"$(split-path (gcm pip3).path)/pip.exe\" - $create_reg = { - param($path, $value) + $create_reg = { + param($path, $value) - $reg_base = \"Registry::HKEY_CURRENT_USER\\Software\" + $reg_base = \"Registry::HKEY_CURRENT_USER\\Software\" - new-item -path \"$reg_base\\$path\" -force | out-null - new-itemproperty -path \"$reg_base\\$path\" ` - -name \"(Default)\" -value \"$value\" -force | out-null - } + new-item -path \"$reg_base\\$path\" -force | out-null + new-itemproperty -path \"$reg_base\\$path\" ` + -name \"(Default)\" -value \"$value\" -force | out-null + } - $create_reg.Invoke(\"Classes\\Python.File\\shell\\open\\command\", ` - \"`\"$dir\\py.exe`\" `\"%1`\" %*\") - $create_reg.Invoke(\"Classes\\.py\", \"Python.File\") - $create_reg.Invoke(\"Python\\PythonCore\\3.4\\InstallPath\", ` - \"$dir\") - $create_reg.Invoke(\"Python\\PythonCore\\3.4\\PythonPath\", ` - \"$dir;$dir\\Lib\\;$dir\\DLLs\\\") - ", - "checkver": "

Latest: Python ([0-9\\.]+) - .*

" + $create_reg.Invoke(\"Classes\\Python.File\\shell\\open\\command\", ` + \"`\"$dir\\py.exe`\" `\"%1`\" %*\") + $create_reg.Invoke(\"Classes\\.py\", \"Python.File\") + $create_reg.Invoke(\"Python\\PythonCore\\3.4\\InstallPath\", ` + \"$dir\") + $create_reg.Invoke(\"Python\\PythonCore\\3.4\\PythonPath\", ` + \"$dir;$dir\\Lib\\;$dir\\DLLs\\\") + ", + "checkver": "

Latest: Python ([0-9\\.]+) - .*

" } diff --git a/bucket/python27.json b/bucket/python27.json index f18ccde366..769a638559 100644 --- a/bucket/python27.json +++ b/bucket/python27.json @@ -1,40 +1,40 @@ { - "homepage": "http://www.python.org", - "license": "http://docs.python.org/2/license.html", - "version": "2.7.10", - "architecture": { - "64bit": { - "url": "https://www.python.org/ftp/python/2.7.10/python-2.7.10.amd64.msi", - "hash": "md5:35f5c301beab341f6f6c9785939882ee" - }, - "32bit": { - "url": "https://www.python.org/ftp/python/2.7.10/python-2.7.10.msi", - "hash": "md5:4ba2c79b103f6003bc4611c837a08208" - } - }, - "bin": [ - "python.exe", - "pythonw.exe", - [ "python.exe", "python2" ] - ], - "env_add_path": [ "scripts" ], - "post_install": " - python2 -m ensurepip - - $create_reg = { - param($path, $value) - - $reg_base = \"Registry::HKEY_CURRENT_USER\\Software\" - - new-item -path \"$reg_base\\$path\" -force | out-null - new-itemproperty -path \"$reg_base\\$path\" ` - -name \"(Default)\" -value \"$value\" -force | out-null - } - - $create_reg.Invoke(\"Python\\PythonCore\\2.7\\InstallPath\", ` - \"$dir\") - $create_reg.Invoke(\"Python\\PythonCore\\2.7\\PythonPath\", ` - \"$dir;$dir\\Lib\\;$dir\\DLLs\\\") - ", - "checkver": "

Latest: .* - Python ([0-9\\.]+)

" + "homepage": "http://www.python.org", + "license": "http://docs.python.org/2/license.html", + "version": "2.7.10", + "architecture": { + "64bit": { + "url": "https://www.python.org/ftp/python/2.7.10/python-2.7.10.amd64.msi", + "hash": "md5:35f5c301beab341f6f6c9785939882ee" + }, + "32bit": { + "url": "https://www.python.org/ftp/python/2.7.10/python-2.7.10.msi", + "hash": "md5:4ba2c79b103f6003bc4611c837a08208" + } + }, + "bin": [ + "python.exe", + "pythonw.exe", + [ "python.exe", "python2" ] + ], + "env_add_path": [ "scripts" ], + "post_install": " + python2 -m ensurepip + + $create_reg = { + param($path, $value) + + $reg_base = \"Registry::HKEY_CURRENT_USER\\Software\" + + new-item -path \"$reg_base\\$path\" -force | out-null + new-itemproperty -path \"$reg_base\\$path\" ` + -name \"(Default)\" -value \"$value\" -force | out-null + } + + $create_reg.Invoke(\"Python\\PythonCore\\2.7\\InstallPath\", ` + \"$dir\") + $create_reg.Invoke(\"Python\\PythonCore\\2.7\\PythonPath\", ` + \"$dir;$dir\\Lib\\;$dir\\DLLs\\\") + ", + "checkver": "

Latest: .* - Python ([0-9\\.]+)

" } diff --git a/bucket/r.json b/bucket/r.json index eb0f4da316..ac7d232c12 100644 --- a/bucket/r.json +++ b/bucket/r.json @@ -1,15 +1,15 @@ { - "homepage": "http://www.r-project.org", - "version": "3.1.1", - "license": "GPL2", - "url": "http://cran.rstudio.com/bin/windows/base/R-3.1.1-win.exe", - "hash": "ce6fb76612aefc482583fb92f4f5c3cb8e8e3bf1a8dda97df7ec5caf746e53fe", - "innosetup": true, - "bin": [ - "bin\\r.exe", - "bin\\rscript.exe" - ], - "notes": "You'll need to type 'r.ps1' or 'r.cmd' to run R, because in Powershell 'r' runs the last command. + "homepage": "http://www.r-project.org", + "version": "3.1.1", + "license": "GPL2", + "url": "http://cran.rstudio.com/bin/windows/base/R-3.1.1-win.exe", + "hash": "ce6fb76612aefc482583fb92f4f5c3cb8e8e3bf1a8dda97df7ec5caf746e53fe", + "innosetup": true, + "bin": [ + "bin\\r.exe", + "bin\\rscript.exe" + ], + "notes": "You'll need to type 'r.ps1' or 'r.cmd' to run R, because in Powershell 'r' runs the last command. You can remove Powershell's 'r' command with: rm alias:\\r @@ -18,8 +18,8 @@ You can remove Powershell's 'r' command with: Annoying, right?! You might want to check out Pshazz (scoop install pshazz)--this has a plugin to remove some crazy aliases from Powershell, as well as many other improvements. ", - "checkver": { - "url": "http://cran.rstudio.com/bin/windows/base/", - "re": "

R-([0-9\\.]+)" - } + "checkver": { + "url": "http://cran.rstudio.com/bin/windows/base/", + "re": "

R-([0-9\\.]+)" + } } diff --git a/bucket/redis.json b/bucket/redis.json index ec4eae3e0a..0a078afdd9 100644 --- a/bucket/redis.json +++ b/bucket/redis.json @@ -1,13 +1,13 @@ { - "homepage": "http://redis.io", - "version": "2.8.21", - "url": "https://github.com/MSOpenTech/redis/releases/download/win-2.8.21/redis-x64-2.8.21.zip", - "hash": "d49865ce057c6cd7883df36b11f050a9dadd1f77ca87976fe20a525c829f74c3", - "bin": [ - "redis-benchmark.exe", - "redis-check-aof.exe", - "redis-check-dump.exe", - "redis-cli.exe", - "redis-server.exe" - ] + "homepage": "http://redis.io", + "version": "2.8.21", + "url": "https://github.com/MSOpenTech/redis/releases/download/win-2.8.21/redis-x64-2.8.21.zip", + "hash": "d49865ce057c6cd7883df36b11f050a9dadd1f77ca87976fe20a525c829f74c3", + "bin": [ + "redis-benchmark.exe", + "redis-check-aof.exe", + "redis-check-dump.exe", + "redis-cli.exe", + "redis-server.exe" + ] } diff --git a/bucket/rktools2k3.json b/bucket/rktools2k3.json index 94fb7c88a8..da7a45ce3d 100644 --- a/bucket/rktools2k3.json +++ b/bucket/rktools2k3.json @@ -1,96 +1,96 @@ { - "homepage": "https://github.com/kodybrown/rktools2k3", - "version": "1.0", - "url": "https://github.com/kodybrown/rktools2k3/archive/master.zip", - "hash": "ca60a82f443988c66ba0e5c16816adaae826b21a29e5c8b9777699b172f9b4cd", - "extract_dir": "rktools2k3-master", - "bin": [ - "adlb.exe", - "atmarp.exe", - "cdburn.exe", - "chklnks.exe", - "chknic.exe", - "compress.exe", - "confdisk.exe", - "consume.exe", - "creatfil.exe", - "custreasonedit.exe", - "delprof.exe", - "dh.exe", - "diskraid.exe", - "diskuse.exe", - "dvdburn.exe", - "empty.exe", - "getcm.exe", - "gpmonitor.exe", - "gpotool.exe", - "hlscan.exe", - "ifmember.exe", - "iniman.exe", - "instcm.exe", - "instexnt.exe", - "instsrv.exe", - "intfiltr.exe", - "kernrate.exe", - "klist.exe", - "linkd.exe", - "linkspeed.exe", - "list.exe", - "lockoutstatus.exe", - "logtime.exe", - "lsreport.exe", - "lsview.exe", - "memmonitor.exe", - "memtriage.exe", - "mibcc.exe", - "mqcast.exe", - "mqcatch.exe", - "nlsinfo.exe", - "now.exe", - "ntimer.exe", - "ntrights.exe", - "oh.exe", - "oleview.exe", - "pathman.exe", - "permcopy.exe", - "perms.exe", - "pfmon.exe", - "pmon.exe", - "printdriverinfo.exe", - "qgrep.exe", - "qtcp.exe", - "rassrvmon.exe", - "rcontrolad.exe", - "regini.exe", - "regview.exe", - "remapkey.exe", - "reportgen.exe", - "robocopy.exe", - "rpccfg.exe", - "rpcdump.exe", - "rpcping.exe", - "rpings.exe", - "rqc.exe", - "rqs.exe", - "setprinter.exe", - "showacls.exe", - "showperf.exe", - "showpriv.exe", - "sleep.exe", - "sonar.exe", - "splinfo.exe", - "srvany.exe", - "srvcheck.exe", - "srvinfo.exe", - "ssdformat.exe", - "subinacl.exe", - "tail.exe", - "tccom.exe", - "tcmon.exe", - "timeit.exe", - "timezone.exe", - "tsctst.exe", - "vadump.exe", - "vfi.exe" - ] -} \ No newline at end of file + "homepage": "https://github.com/kodybrown/rktools2k3", + "version": "1.0", + "url": "https://github.com/kodybrown/rktools2k3/archive/master.zip", + "hash": "ca60a82f443988c66ba0e5c16816adaae826b21a29e5c8b9777699b172f9b4cd", + "extract_dir": "rktools2k3-master", + "bin": [ + "adlb.exe", + "atmarp.exe", + "cdburn.exe", + "chklnks.exe", + "chknic.exe", + "compress.exe", + "confdisk.exe", + "consume.exe", + "creatfil.exe", + "custreasonedit.exe", + "delprof.exe", + "dh.exe", + "diskraid.exe", + "diskuse.exe", + "dvdburn.exe", + "empty.exe", + "getcm.exe", + "gpmonitor.exe", + "gpotool.exe", + "hlscan.exe", + "ifmember.exe", + "iniman.exe", + "instcm.exe", + "instexnt.exe", + "instsrv.exe", + "intfiltr.exe", + "kernrate.exe", + "klist.exe", + "linkd.exe", + "linkspeed.exe", + "list.exe", + "lockoutstatus.exe", + "logtime.exe", + "lsreport.exe", + "lsview.exe", + "memmonitor.exe", + "memtriage.exe", + "mibcc.exe", + "mqcast.exe", + "mqcatch.exe", + "nlsinfo.exe", + "now.exe", + "ntimer.exe", + "ntrights.exe", + "oh.exe", + "oleview.exe", + "pathman.exe", + "permcopy.exe", + "perms.exe", + "pfmon.exe", + "pmon.exe", + "printdriverinfo.exe", + "qgrep.exe", + "qtcp.exe", + "rassrvmon.exe", + "rcontrolad.exe", + "regini.exe", + "regview.exe", + "remapkey.exe", + "reportgen.exe", + "robocopy.exe", + "rpccfg.exe", + "rpcdump.exe", + "rpcping.exe", + "rpings.exe", + "rqc.exe", + "rqs.exe", + "setprinter.exe", + "showacls.exe", + "showperf.exe", + "showpriv.exe", + "sleep.exe", + "sonar.exe", + "splinfo.exe", + "srvany.exe", + "srvcheck.exe", + "srvinfo.exe", + "ssdformat.exe", + "subinacl.exe", + "tail.exe", + "tccom.exe", + "tcmon.exe", + "timeit.exe", + "timezone.exe", + "tsctst.exe", + "vadump.exe", + "vfi.exe" + ] +} diff --git a/bucket/rsync.json b/bucket/rsync.json index 045b99e5ba..0f35aa373d 100644 --- a/bucket/rsync.json +++ b/bucket/rsync.json @@ -1,9 +1,9 @@ { - "homepage": "https://www.itefix.net/cwrsync", - "version": "3.1.1", - "license": "", - "url": "https://www.itefix.net/dl/cwRsync_5.4.1_x86_Free.zip", - "hash": "a200c7f269311cdaf68610a15d0e4891b80a6e21e8e981ac7afad44df79596f6", - "extract_dir": "cwRsync_5.4.1_x86_Free", - "bin": "rsync.exe" + "homepage": "https://www.itefix.net/cwrsync", + "version": "3.1.1", + "license": "", + "url": "https://www.itefix.net/dl/cwRsync_5.4.1_x86_Free.zip", + "hash": "a200c7f269311cdaf68610a15d0e4891b80a6e21e8e981ac7afad44df79596f6", + "extract_dir": "cwRsync_5.4.1_x86_Free", + "bin": "rsync.exe" } diff --git a/bucket/ruby.json b/bucket/ruby.json index 0c5c369233..dba71937ef 100644 --- a/bucket/ruby.json +++ b/bucket/ruby.json @@ -1,35 +1,35 @@ { - "homepage": "http://rubyinstaller.org", - "version": "2.2.1", - "architecture": { - "64bit": { - "url": [ - "http://dl.bintray.com/oneclick/rubyinstaller/ruby-2.2.1-x64-mingw32.7z?direct#/dl.7z", - "http://cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe#/dl2.7z" - ], - "hash": [ - "afc01c6e5fa15bfd32b85ab42f0466fbb5b7c74b08e9ed71f5ad2e852c979ecc", - "2ada04c7234199126c0f34f6ea7163a8f8dccb1e15814af175a189f6ac48b8ac" - ], - "extract_dir": "ruby-2.2.1-x64-mingw32" - }, - "32bit": { - "url": [ - "http://dl.bintray.com/oneclick/rubyinstaller/ruby-2.2.1-i386-mingw32.7z?direct#/dl.7z", - "http://cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe#/dl2.7z" - ], - "hash": [ - "53c3d758f8be083abc00ce8c9f6150c007a93934e8b26647915ba2edef84a8e5", - "61a06b5da06dd94343e591163ac0d43c544e9cd4df770f01275645b268b44dc7" - ], - "extract_dir": "ruby-2.2.1-i386-mingw32" - } - }, - "extract_to": [ "", "devkit" ], - "env_add_path": "bin", - "post_install": "pushd $dir\\devkit;echo \"---`n- $dir\" | out-file config.yml -enc default; ruby dk.rb install;popd;", - "checkver": { - "url": "http://rubyinstaller.org/downloads/", - "re": "
  • Ruby ([0-9\\.p-]+)
  • " - } + "homepage": "http://rubyinstaller.org", + "version": "2.2.1", + "architecture": { + "64bit": { + "url": [ + "http://dl.bintray.com/oneclick/rubyinstaller/ruby-2.2.1-x64-mingw32.7z?direct#/dl.7z", + "http://cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe#/dl2.7z" + ], + "hash": [ + "afc01c6e5fa15bfd32b85ab42f0466fbb5b7c74b08e9ed71f5ad2e852c979ecc", + "2ada04c7234199126c0f34f6ea7163a8f8dccb1e15814af175a189f6ac48b8ac" + ], + "extract_dir": "ruby-2.2.1-x64-mingw32" + }, + "32bit": { + "url": [ + "http://dl.bintray.com/oneclick/rubyinstaller/ruby-2.2.1-i386-mingw32.7z?direct#/dl.7z", + "http://cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe#/dl2.7z" + ], + "hash": [ + "53c3d758f8be083abc00ce8c9f6150c007a93934e8b26647915ba2edef84a8e5", + "61a06b5da06dd94343e591163ac0d43c544e9cd4df770f01275645b268b44dc7" + ], + "extract_dir": "ruby-2.2.1-i386-mingw32" + } + }, + "extract_to": [ "", "devkit" ], + "env_add_path": "bin", + "post_install": "pushd $dir\\devkit;echo \"---`n- $dir\" | out-file config.yml -enc default; ruby dk.rb install;popd;", + "checkver": { + "url": "http://rubyinstaller.org/downloads/", + "re": "
  • Ruby ([0-9\\.p-]+)
  • " + } } diff --git a/bucket/ruby19.json b/bucket/ruby19.json index b66bc14d36..86ba6d21f1 100644 --- a/bucket/ruby19.json +++ b/bucket/ruby19.json @@ -1,16 +1,16 @@ { - "homepage": "http://rubyinstaller.org", - "version": "1.9.3-p448", - "url": [ - "http://dl.bintray.com/oneclick/rubyinstaller/ruby-1.9.3-p448-i386-mingw32.7z?direct#/dl.7z", - "https://github.com/downloads/oneclick/rubyinstaller/DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe#/dl2.7z" - ], - "hash": [ - "72c7bff32665b9aa2c5f66e63679ca1b4a6a16725579681d98e971e593aca506", - "6c3af5487dafda56808baf76edd262b2020b1b25ab86aabf972629f4a6a54491" - ], - "extract_dir": "ruby-1.9.3-p448-i386-mingw32", - "extract_to": [ "", "devkit" ], - "env_add_path": "bin", - "post_install": "pushd $dir\\devkit;ruby dk.rb init > $null;echo \"- $dir\" | out-file config.yml -a -enc default; ruby dk.rb install;popd;" -} \ No newline at end of file + "homepage": "http://rubyinstaller.org", + "version": "1.9.3-p448", + "url": [ + "http://dl.bintray.com/oneclick/rubyinstaller/ruby-1.9.3-p448-i386-mingw32.7z?direct#/dl.7z", + "https://github.com/downloads/oneclick/rubyinstaller/DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe#/dl2.7z" + ], + "hash": [ + "72c7bff32665b9aa2c5f66e63679ca1b4a6a16725579681d98e971e593aca506", + "6c3af5487dafda56808baf76edd262b2020b1b25ab86aabf972629f4a6a54491" + ], + "extract_dir": "ruby-1.9.3-p448-i386-mingw32", + "extract_to": [ "", "devkit" ], + "env_add_path": "bin", + "post_install": "pushd $dir\\devkit;ruby dk.rb init > $null;echo \"- $dir\" | out-file config.yml -a -enc default; ruby dk.rb install;popd;" +} diff --git a/bucket/runat.json b/bucket/runat.json index b0d86d1fed..3966439b91 100644 --- a/bucket/runat.json +++ b/bucket/runat.json @@ -1,7 +1,7 @@ { - "homepage": "https://github.com/lukesampson/psutils", - "version": "0.2013.06.29", - "url": "https://raw.github.com/lukesampson/psutils/master/runat.ps1", - "hash": "60ed4586db46ab6859e6786a3cbe896f64eb42b4a557e3e836984e2c379a328a", - "bin": "runat.ps1" -} \ No newline at end of file + "homepage": "https://github.com/lukesampson/psutils", + "version": "0.2013.06.29", + "url": "https://raw.github.com/lukesampson/psutils/master/runat.ps1", + "hash": "60ed4586db46ab6859e6786a3cbe896f64eb42b4a557e3e836984e2c379a328a", + "bin": "runat.ps1" +} diff --git a/bucket/rust.json b/bucket/rust.json index ad67e78d0f..3844bb502b 100644 --- a/bucket/rust.json +++ b/bucket/rust.json @@ -1,13 +1,13 @@ { - "homepage": "http://www.rust-lang.org", - "version": "1.1.0", - "license": "MIT/Apache 2.0", - "url": "https://static.rust-lang.org/dist/rust-1.1.0-x86_64-pc-windows-gnu.msi", - "hash": "48437584a1788711d96c8f8047c3cad9c41654e6cf8596459fdce4ed519a101d", - "bin": [ - "Rust\\bin\\rustc.exe", - "Rust\\bin\\rustdoc.exe", - "Rust\\bin\\cargo.exe" - ], - "checkver": "

    Docs \\(([0-9\\.]+)\\)

    " + "homepage": "http://www.rust-lang.org", + "version": "1.1.0", + "license": "MIT/Apache 2.0", + "url": "https://static.rust-lang.org/dist/rust-1.1.0-x86_64-pc-windows-gnu.msi", + "hash": "48437584a1788711d96c8f8047c3cad9c41654e6cf8596459fdce4ed519a101d", + "bin": [ + "Rust\\bin\\rustc.exe", + "Rust\\bin\\rustdoc.exe", + "Rust\\bin\\cargo.exe" + ], + "checkver": "

    Docs \\(([0-9\\.]+)\\)

    " } diff --git a/bucket/say.json b/bucket/say.json index be904cb318..07bc54e053 100644 --- a/bucket/say.json +++ b/bucket/say.json @@ -1,13 +1,13 @@ { - "homepage": "https://github.com/lukesampson/psutils", - "version": "0.2013.09.08", - "url": [ - "https://raw.github.com/lukesampson/psutils/3554f2db73/say.ps1", - "https://raw.github.com/lukesampson/psutils/2938900e58/getopt.ps1" - ], - "hash": [ - "75e0013ed0a60b47646f6190b523fc6986177f7360e5352a22806d7e6143bb62", - "452e61d92dd0eb4e4d6fe5fcd70f30b8c4f36cc9e3b618a7816ec45768d21262" - ], - "bin": "say.ps1" -} \ No newline at end of file + "homepage": "https://github.com/lukesampson/psutils", + "version": "0.2013.09.08", + "url": [ + "https://raw.github.com/lukesampson/psutils/3554f2db73/say.ps1", + "https://raw.github.com/lukesampson/psutils/2938900e58/getopt.ps1" + ], + "hash": [ + "75e0013ed0a60b47646f6190b523fc6986177f7360e5352a22806d7e6143bb62", + "452e61d92dd0eb4e4d6fe5fcd70f30b8c4f36cc9e3b618a7816ec45768d21262" + ], + "bin": "say.ps1" +} diff --git a/bucket/sbcl.json b/bucket/sbcl.json index 283e212fc1..cab4d90c27 100644 --- a/bucket/sbcl.json +++ b/bucket/sbcl.json @@ -1,17 +1,17 @@ { - "homepage": "http://www.sbcl.org/", - "version": "1.2.6", - "license": "http://www.sbcl.org/history.html", - "architecture": { - "64bit": { - "url": "http://prdownloads.sourceforge.net/sbcl/sbcl-1.2.6-x86-64-windows-binary.msi", - "hash": "sha1:d65c059849e95eb436a3d51fa1e3552a0a2aff6f" - } - }, - "env_set": { - "SBCL_HOME": "$dir\\PFiles\\Steel Bank Common Lisp\\1.2.6" - }, - "bin": [ "PFiles\\Steel Bank Common Lisp\\1.2.6\\sbcl.exe"], - "checkver": "The most recent version is SBCL ([^\\ ]+)", - "notes": "Please restart your command line for SBCL_HOME to take effect. Please consider installing http://www.quicklisp.org/" -} \ No newline at end of file + "homepage": "http://www.sbcl.org/", + "version": "1.2.6", + "license": "http://www.sbcl.org/history.html", + "architecture": { + "64bit": { + "url": "http://prdownloads.sourceforge.net/sbcl/sbcl-1.2.6-x86-64-windows-binary.msi", + "hash": "sha1:d65c059849e95eb436a3d51fa1e3552a0a2aff6f" + } + }, + "env_set": { + "SBCL_HOME": "$dir\\PFiles\\Steel Bank Common Lisp\\1.2.6" + }, + "bin": [ "PFiles\\Steel Bank Common Lisp\\1.2.6\\sbcl.exe"], + "checkver": "The most recent version is SBCL ([^\\ ]+)", + "notes": "Please restart your command line for SBCL_HOME to take effect. Please consider installing http://www.quicklisp.org/" +} diff --git a/bucket/sbt.json b/bucket/sbt.json index a1c47e8b2c..13efddbbd2 100644 --- a/bucket/sbt.json +++ b/bucket/sbt.json @@ -1,11 +1,11 @@ { - "homepage": "http://www.scala-sbt.org/", - "version": "0.13.0", - "license": "BSD", - "url": "http://repo.scala-sbt.org/scalasbt/sbt-native-packages/org/scala-sbt/sbt/0.13.0/sbt.zip", - "hash": "7e9b413736b9ad841f1588dd3116c848110a2fc37ba663461523a4383bb236ae", - "extract_dir": "sbt", - "bin": [ - "bin\\sbt.bat" - ] + "homepage": "http://www.scala-sbt.org/", + "version": "0.13.0", + "license": "BSD", + "url": "http://repo.scala-sbt.org/scalasbt/sbt-native-packages/org/scala-sbt/sbt/0.13.0/sbt.zip", + "hash": "7e9b413736b9ad841f1588dd3116c848110a2fc37ba663461523a4383bb236ae", + "extract_dir": "sbt", + "bin": [ + "bin\\sbt.bat" + ] } diff --git a/bucket/scriptcs.json b/bucket/scriptcs.json index 89a07d1231..57b66c7dd1 100644 --- a/bucket/scriptcs.json +++ b/bucket/scriptcs.json @@ -1,9 +1,9 @@ { - "homepage": "http://scriptcs.net/", - "version": "0.13.2", - "license": "Apache 2.0", - "url": "http://chocolatey.org/api/v2/package/ScriptCs/0.13.2?fn=/dl.zip", - "hash": "b0e24268e5e5258cd2f26bacfccb75427884cb00435358b724fbf15d5fb38083", - "extract_dir": "tools", - "bin": "scriptcs.exe" + "homepage": "http://scriptcs.net/", + "version": "0.13.2", + "license": "Apache 2.0", + "url": "http://chocolatey.org/api/v2/package/ScriptCs/0.13.2?fn=/dl.zip", + "hash": "b0e24268e5e5258cd2f26bacfccb75427884cb00435358b724fbf15d5fb38083", + "extract_dir": "tools", + "bin": "scriptcs.exe" } diff --git a/bucket/sed.json b/bucket/sed.json index 1c59a64c14..e17ceeb00f 100644 --- a/bucket/sed.json +++ b/bucket/sed.json @@ -1,14 +1,14 @@ { - "homepage": "http://gnuwin32.sourceforge.net/packages/sed.htm", - "version": "4.2.1", - "license": "GPL2", - "url": [ - "http://ufpr.dl.sourceforge.net/project/gnuwin32/sed/4.2.1/sed-4.2.1-bin.zip", - "http://ufpr.dl.sourceforge.net/project/gnuwin32/sed/4.2.1/sed-4.2.1-dep.zip" - ], - "hash": [ - "md5:d94e045d98bcd3142bc3c665a5d82a84", - "md5:6b0997fa87158fff67457ec1eb96e332" - ], - "bin": "bin\\sed.exe" -} \ No newline at end of file + "homepage": "http://gnuwin32.sourceforge.net/packages/sed.htm", + "version": "4.2.1", + "license": "GPL2", + "url": [ + "http://ufpr.dl.sourceforge.net/project/gnuwin32/sed/4.2.1/sed-4.2.1-bin.zip", + "http://ufpr.dl.sourceforge.net/project/gnuwin32/sed/4.2.1/sed-4.2.1-dep.zip" + ], + "hash": [ + "md5:d94e045d98bcd3142bc3c665a5d82a84", + "md5:6b0997fa87158fff67457ec1eb96e332" + ], + "bin": "bin\\sed.exe" +} diff --git a/bucket/shasum.json b/bucket/shasum.json index 008a86647a..2357648d5e 100644 --- a/bucket/shasum.json +++ b/bucket/shasum.json @@ -1,13 +1,13 @@ { - "homepage": "https://github.com/lukesampson/psutils", - "version": "0.2013.09.29", - "url": [ - "https://raw.github.com/lukesampson/psutils/4fa05b1c9b/shasum.ps1", - "https://raw.github.com/lukesampson/psutils/4fa05b1c9b/getopt.ps1" - ], - "hash": [ - "002ed0928a9d80f2d603e8de12bcd922fcdff5acfc4c6f6c67c2e2ace8728b08", - "452e61d92dd0eb4e4d6fe5fcd70f30b8c4f36cc9e3b618a7816ec45768d21262" - ], - "bin": "shasum.ps1" -} \ No newline at end of file + "homepage": "https://github.com/lukesampson/psutils", + "version": "0.2013.09.29", + "url": [ + "https://raw.github.com/lukesampson/psutils/4fa05b1c9b/shasum.ps1", + "https://raw.github.com/lukesampson/psutils/4fa05b1c9b/getopt.ps1" + ], + "hash": [ + "002ed0928a9d80f2d603e8de12bcd922fcdff5acfc4c6f6c67c2e2ace8728b08", + "452e61d92dd0eb4e4d6fe5fcd70f30b8c4f36cc9e3b618a7816ec45768d21262" + ], + "bin": "shasum.ps1" +} diff --git a/bucket/sliksvn.json b/bucket/sliksvn.json index 0fe8d973fb..21fb389f01 100644 --- a/bucket/sliksvn.json +++ b/bucket/sliksvn.json @@ -1,32 +1,32 @@ { - "homepage": "http://sliksvn.com/", - "version": "1.8.10", - "architecture": { - "64bit": { - "url": "https://sliksvn.com/pub/Slik-Subversion-1.8.10-x64.msi", - "hash": "4f90b4f51ccec1cb309022ee2db98be8297a2cdee33ae6ce218d1cf93883a222" - }, - "32bit": { - "url": "https://sliksvn.com/pub/Slik-Subversion-1.8.10-win32.msi", - "hash": "7f1e4d9080fb8c591cc354b91bb1ede9c17ab8a3b0dbf5347525f6c79c6e059a" - } - }, - "extract_dir": "SlikSvn", - "bin": [ - "bin\\svn.exe", - "bin\\svnadmin.exe", - "bin\\svnauthz-validate.exe", - "bin\\svndumpfilter.exe", - "bin\\svnlook.exe", - "bin\\svnmucc.exe", - "bin\\svn-populate-node-origins-index.exe", - "bin\\svnrdump.exe", - "bin\\svnserve.exe", - "bin\\svnsync.exe", - "bin\\svnversion.exe" - ], - "checkver": { - "url": "http://sliksvn.com/en/download/", - "re": "" - } + "homepage": "http://sliksvn.com/", + "version": "1.8.10", + "architecture": { + "64bit": { + "url": "https://sliksvn.com/pub/Slik-Subversion-1.8.10-x64.msi", + "hash": "4f90b4f51ccec1cb309022ee2db98be8297a2cdee33ae6ce218d1cf93883a222" + }, + "32bit": { + "url": "https://sliksvn.com/pub/Slik-Subversion-1.8.10-win32.msi", + "hash": "7f1e4d9080fb8c591cc354b91bb1ede9c17ab8a3b0dbf5347525f6c79c6e059a" + } + }, + "extract_dir": "SlikSvn", + "bin": [ + "bin\\svn.exe", + "bin\\svnadmin.exe", + "bin\\svnauthz-validate.exe", + "bin\\svndumpfilter.exe", + "bin\\svnlook.exe", + "bin\\svnmucc.exe", + "bin\\svn-populate-node-origins-index.exe", + "bin\\svnrdump.exe", + "bin\\svnserve.exe", + "bin\\svnsync.exe", + "bin\\svnversion.exe" + ], + "checkver": { + "url": "http://sliksvn.com/en/download/", + "re": "" + } } diff --git a/bucket/sqlite.json b/bucket/sqlite.json index b80ac15844..695ae817a9 100644 --- a/bucket/sqlite.json +++ b/bucket/sqlite.json @@ -1,9 +1,9 @@ { - "homepage": "http://www.sqlite.org/", - "version": "3.8.6", - "license": "Public Domain", - "url": "https://sqlite.org/2014/sqlite-shell-win32-x86-3080600.zip", - "hash": "sha1:e25f75ed380d9f7458fd024db01a946a65852e8c", - "bin": "sqlite3.exe", - "checkver": "

    Current Status

    \\s*

      \\s*
    • Version ([0-9\\.]+)" + "homepage": "http://www.sqlite.org/", + "version": "3.8.6", + "license": "Public Domain", + "url": "https://sqlite.org/2014/sqlite-shell-win32-x86-3080600.zip", + "hash": "sha1:e25f75ed380d9f7458fd024db01a946a65852e8c", + "bin": "sqlite3.exe", + "checkver": "

      Current Status

      \\s*

        \\s*
      • Version ([0-9\\.]+)" } diff --git a/bucket/sudo.json b/bucket/sudo.json index 6919580649..20288b4d4b 100644 --- a/bucket/sudo.json +++ b/bucket/sudo.json @@ -1,7 +1,7 @@ { - "homepage": "https://github.com/lukesampson/psutils", - "version": "0.2014.07.18", - "url": "https://raw.githubusercontent.com/lukesampson/psutils/efcd212cf7/sudo.ps1", - "hash": "75fb610d079d6cd709f3fc103e58b582513e583638c467a539c820c2ed760ced", - "bin": "sudo.ps1" -} \ No newline at end of file + "homepage": "https://github.com/lukesampson/psutils", + "version": "0.2014.07.18", + "url": "https://raw.githubusercontent.com/lukesampson/psutils/efcd212cf7/sudo.ps1", + "hash": "75fb610d079d6cd709f3fc103e58b582513e583638c467a539c820c2ed760ced", + "bin": "sudo.ps1" +} diff --git a/bucket/syncany-cli.json b/bucket/syncany-cli.json index 7649e318f2..ac99da1b85 100644 --- a/bucket/syncany-cli.json +++ b/bucket/syncany-cli.json @@ -1,12 +1,12 @@ { - "homepage": "https://www.syncany.org/", - "license": "https://raw.githubusercontent.com/syncany/syncany/develop/LICENSE.md", - "version": "0.4.0", - "url": "https://www.syncany.org/dist/releases/syncany-cli-0.4.0-alpha.exe", - "hash": "386365f99ea985a9abedab58439980500b3b62592531cd44af32e30f63df232d", - "innosetup": true, - "bin": [ - "bin\\sy.bat", - "bin\\syncany.bat" - ] -} \ No newline at end of file + "homepage": "https://www.syncany.org/", + "license": "https://raw.githubusercontent.com/syncany/syncany/develop/LICENSE.md", + "version": "0.4.0", + "url": "https://www.syncany.org/dist/releases/syncany-cli-0.4.0-alpha.exe", + "hash": "386365f99ea985a9abedab58439980500b3b62592531cd44af32e30f63df232d", + "innosetup": true, + "bin": [ + "bin\\sy.bat", + "bin\\syncany.bat" + ] +} diff --git a/bucket/tar.json b/bucket/tar.json index ef476ade6d..968258aa7f 100644 --- a/bucket/tar.json +++ b/bucket/tar.json @@ -1,21 +1,21 @@ { - "homepage": "http://www.mingw.org/wiki/msys", - "version": "1.23", - "license": "GPL2", - "depends": "gzip", - "url": [ - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/tar/tar-1.23-1/tar-1.23-1-msys-1.0.13-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/libiconv/libiconv-1.14-1/libiconv-1.14-1-msys-1.0.17-dll-2.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/gettext/gettext-0.18.1.1-1/libintl-0.18.1.1-1-msys-1.0.17-dll-8.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/regex/regex-1.20090805-2/libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma" - ], - "hash": [ - "2fa09e5a9563a9608077a65b276891c9f89de416dbe4b4a9eb4e8f36250a2887", - "4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5", - "196921e8c232259c8e6a6852b9ee8d9ab2d29a91419f0c8dc27ba6f034231683", - "29db8c969661c511fbe2a341ab25c993c5f9c555842a75d6ddbcfa70dec16910", - "85dd8c1e27a90675c5f867be57ba7ae2bb55dde8cd2d19f284c896be134bd3d1" - ], - "bin": "bin\\tar.exe" -} \ No newline at end of file + "homepage": "http://www.mingw.org/wiki/msys", + "version": "1.23", + "license": "GPL2", + "depends": "gzip", + "url": [ + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/tar/tar-1.23-1/tar-1.23-1-msys-1.0.13-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/libiconv/libiconv-1.14-1/libiconv-1.14-1-msys-1.0.17-dll-2.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/gettext/gettext-0.18.1.1-1/libintl-0.18.1.1-1-msys-1.0.17-dll-8.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/regex/regex-1.20090805-2/libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma" + ], + "hash": [ + "2fa09e5a9563a9608077a65b276891c9f89de416dbe4b4a9eb4e8f36250a2887", + "4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5", + "196921e8c232259c8e6a6852b9ee8d9ab2d29a91419f0c8dc27ba6f034231683", + "29db8c969661c511fbe2a341ab25c993c5f9c555842a75d6ddbcfa70dec16910", + "85dd8c1e27a90675c5f867be57ba7ae2bb55dde8cd2d19f284c896be134bd3d1" + ], + "bin": "bin\\tar.exe" +} diff --git a/bucket/telnet.json b/bucket/telnet.json index 80c569db87..a86a569217 100644 --- a/bucket/telnet.json +++ b/bucket/telnet.json @@ -1,22 +1,22 @@ { - "homepage": "http://www.mingw.org/wiki/msys", - "license": "GPL2", - "version": "msys-inetutils-1.7-1", - "url": [ - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.13-2/msysCORE-1.0.13-2-msys-1.0.13-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/termcap/termcap-0.20050421_1-2/termcap-0.20050421_1-2-msys-1.0.13-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/minires/minires-1.02_1-2/libminires-1.02_1-2-msys-1.0.13-dll.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/bison/bison-2.4.2-1/bison-2.4.2-1-msys-1.0.13-rtm.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/inetutils/inetutils-1.7-1/inetutils-1.7-1-msys-1.0.13-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/inetutils/inetutils-1.7-1/inetutils-1.7-1-msys.RELEASE_NOTES.txt" - ], - "hash": [ - "41c7d5561662e41da74951f373a08a95db40b27b1246227bbbc13abc44976ea7", - "906e756332b5fd6c10eeb4b6362f5957dd8cafa5679f89d9adbae59dff7f2ff2", - "e42fbdcff71404a76306f3b8f0024f453aafa7fe7dd9dac43c82b2e8d33e23f1", - "81cd516f5c8071edfb6004fb70424226245dca48651d20b7055d713085490263", - "cd2b56b9c8e424d8c3c86e2101069d4083ce1bb2f929591a70bdc4fb604ddb46", - "7d629340d7b7ddeccae662fbafdafb779dfb8013b27d8d2a7a75a5bf7529c5b7" - ], - "bin": "bin\\telnet.exe" -} \ No newline at end of file + "homepage": "http://www.mingw.org/wiki/msys", + "license": "GPL2", + "version": "msys-inetutils-1.7-1", + "url": [ + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.13-2/msysCORE-1.0.13-2-msys-1.0.13-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/termcap/termcap-0.20050421_1-2/termcap-0.20050421_1-2-msys-1.0.13-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/minires/minires-1.02_1-2/libminires-1.02_1-2-msys-1.0.13-dll.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/bison/bison-2.4.2-1/bison-2.4.2-1-msys-1.0.13-rtm.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/inetutils/inetutils-1.7-1/inetutils-1.7-1-msys-1.0.13-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/inetutils/inetutils-1.7-1/inetutils-1.7-1-msys.RELEASE_NOTES.txt" + ], + "hash": [ + "41c7d5561662e41da74951f373a08a95db40b27b1246227bbbc13abc44976ea7", + "906e756332b5fd6c10eeb4b6362f5957dd8cafa5679f89d9adbae59dff7f2ff2", + "e42fbdcff71404a76306f3b8f0024f453aafa7fe7dd9dac43c82b2e8d33e23f1", + "81cd516f5c8071edfb6004fb70424226245dca48651d20b7055d713085490263", + "cd2b56b9c8e424d8c3c86e2101069d4083ce1bb2f929591a70bdc4fb604ddb46", + "7d629340d7b7ddeccae662fbafdafb779dfb8013b27d8d2a7a75a5bf7529c5b7" + ], + "bin": "bin\\telnet.exe" +} diff --git a/bucket/time.json b/bucket/time.json index 8d8c538f52..ab55c076c0 100644 --- a/bucket/time.json +++ b/bucket/time.json @@ -1,7 +1,7 @@ { - "homepage": "https://github.com/lukesampson/psutils", - "version": "2013-08-10", - "url": "https://raw.github.com/lukesampson/psutils/598331a7e2b6d4bb60d8a458f8212d349b383e7c/time.ps1", - "hash": "66f8e31d76d0c1e8bf89bd5f73f6404c384ddcf0bd2069c5a40c331fbca4a63b", - "bin": "time.ps1" -} \ No newline at end of file + "homepage": "https://github.com/lukesampson/psutils", + "version": "2013-08-10", + "url": "https://raw.github.com/lukesampson/psutils/598331a7e2b6d4bb60d8a458f8212d349b383e7c/time.ps1", + "hash": "66f8e31d76d0c1e8bf89bd5f73f6404c384ddcf0bd2069c5a40c331fbca4a63b", + "bin": "time.ps1" +} diff --git a/bucket/touch.json b/bucket/touch.json index 01db476b82..cd5aed4aa2 100644 --- a/bucket/touch.json +++ b/bucket/touch.json @@ -1,7 +1,7 @@ { - "homepage": "https://github.com/lukesampson/psutils", - "version": "2013-07-02", - "url": "https://raw.github.com/lukesampson/psutils/767c019fc81f60a990342103cbf75db6703d3593/touch.ps1", - "hash": "1cedd53b77583d94264274ca8617f4ff5da535fc15d29274d3b12e5f72f7c2f5", - "bin": "touch.ps1" -} \ No newline at end of file + "homepage": "https://github.com/lukesampson/psutils", + "version": "2013-07-02", + "url": "https://raw.github.com/lukesampson/psutils/767c019fc81f60a990342103cbf75db6703d3593/touch.ps1", + "hash": "1cedd53b77583d94264274ca8617f4ff5da535fc15d29274d3b12e5f72f7c2f5", + "bin": "touch.ps1" +} diff --git a/bucket/unzip.json b/bucket/unzip.json index 50225d99b8..2fba92c262 100644 --- a/bucket/unzip.json +++ b/bucket/unzip.json @@ -1,19 +1,19 @@ { - "homepage": "http://mingw.org/wiki/MSYS", - "version": "6.0", - "license": "GPL2", - "url": [ - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/unzip/unzip-6.0-1/unzip-6.0-1-msys-1.0.13-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma" - ], - "hash": [ - "ecb6749234f83389b34723db52a36326421e9bb1aa41f0ce575aa802ca390c79", - "4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5" - ], - "bin": [ - "bin\\funzip.exe", - "bin\\unzip.exe", - "bin\\unzipsfx.exe", - "bin\\zipinfo.exe" - ] -} \ No newline at end of file + "homepage": "http://mingw.org/wiki/MSYS", + "version": "6.0", + "license": "GPL2", + "url": [ + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/unzip/unzip-6.0-1/unzip-6.0-1-msys-1.0.13-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma" + ], + "hash": [ + "ecb6749234f83389b34723db52a36326421e9bb1aa41f0ce575aa802ca390c79", + "4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5" + ], + "bin": [ + "bin\\funzip.exe", + "bin\\unzip.exe", + "bin\\unzipsfx.exe", + "bin\\zipinfo.exe" + ] +} diff --git a/bucket/vagrant.json b/bucket/vagrant.json index 33b579c76c..0fec63fba4 100644 --- a/bucket/vagrant.json +++ b/bucket/vagrant.json @@ -1,13 +1,13 @@ { - "homepage": "http://www.vagrantup.com/", - "version": "1.7.4", - "license": "MIT", - "url": "https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.4.msi", - "hash": "a1ca7d99f162e001c826452a724341f421adfaef3e1366ee504b73ad19e3574f", - "extract_dir": "HashiCorp/Vagrant", - "bin": "bin\\vagrant.exe", - "checkver": { - "url": "http://www.vagrantup.com/downloads.html", - "re": "latest\\s+version\\s+of\\s+Vagrant\\s+\\(([^\\)]+)\\)" - } + "homepage": "http://www.vagrantup.com/", + "version": "1.7.4", + "license": "MIT", + "url": "https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.4.msi", + "hash": "a1ca7d99f162e001c826452a724341f421adfaef3e1366ee504b73ad19e3574f", + "extract_dir": "HashiCorp/Vagrant", + "bin": "bin\\vagrant.exe", + "checkver": { + "url": "http://www.vagrantup.com/downloads.html", + "re": "latest\\s+version\\s+of\\s+Vagrant\\s+\\(([^\\)]+)\\)" + } } diff --git a/bucket/vim.json b/bucket/vim.json index fb5628ba77..594e509314 100644 --- a/bucket/vim.json +++ b/bucket/vim.json @@ -1,34 +1,34 @@ { - "url": "http://www.vim.org", - "license": "http://vimdoc.sourceforge.net/htmldoc/uganda.html#license", - "version": "7.4", - "url": [ - "http://ftp.vim.org/pub/vim/pc/vim74w32.zip", - "http://ftp.vim.org/pub/vim/pc/vim74rt.zip", - "http://ufpr.dl.sourceforge.net/project/gettext/libiconv-win32/1.9.1/libiconv-1.9.1.bin.woe32.zip", - "http://ufpr.dl.sourceforge.net/project/gettext/gettext-win32/0.13.1/gettext-runtime-0.13.1.bin.woe32.zip", - "https://raw.github.com/lukesampson/psutils/3653063/vimtutor.ps1" - ], - "hash": [ - "md5:e53fa93de55b29b45224a5504ad78a4f", - "md5:819c04edd9ec4df8e30cb9d6bb9ef0ca", - "c0aa25c4c16f297a262dbcfcac7bed95d2cb2dc39603eac10e5d79be50a562a3", - "68a49890f4469afebb24c28d2f1396f019607f3acc137963de0da789d93dc58f", - "f6081071fa95a6f49c049e9d2aed2d2a2632ec47635b4b497a97bab5f5add498" - ], - "extract_dir": [ "vim\\vim74", "vim\\vim74", "bin", "bin" ], - "bin": [ "vim.exe", "vimtutor.ps1" ], - "post_install": "mv -force \"$dir\\intl.dll\" \"$dir\\libintl.dll\" - if(!(test-path ~\\.vimrc)) { - cp \"$dir\\vimrc_example.vim\" ~\\.vimrc - \"set shell=$((gcm powershell).path)\\ -executionpolicy\\ bypass\" | out-file ~\\.vimrc -append -encoding ascii - echo '~/.vimrc was created with your shell set to Powershell.' - } else { echo '~/.vimrc exists, skipping' }", - "checkver": { - "url": "http://www.vim.org/download.php", - "re": "Vim ([0-9\\.]+) is the latest stable version" - }, - "env_set": { - "VIM": "$dir" - } -} \ No newline at end of file + "url": "http://www.vim.org", + "license": "http://vimdoc.sourceforge.net/htmldoc/uganda.html#license", + "version": "7.4", + "url": [ + "http://ftp.vim.org/pub/vim/pc/vim74w32.zip", + "http://ftp.vim.org/pub/vim/pc/vim74rt.zip", + "http://ufpr.dl.sourceforge.net/project/gettext/libiconv-win32/1.9.1/libiconv-1.9.1.bin.woe32.zip", + "http://ufpr.dl.sourceforge.net/project/gettext/gettext-win32/0.13.1/gettext-runtime-0.13.1.bin.woe32.zip", + "https://raw.github.com/lukesampson/psutils/3653063/vimtutor.ps1" + ], + "hash": [ + "md5:e53fa93de55b29b45224a5504ad78a4f", + "md5:819c04edd9ec4df8e30cb9d6bb9ef0ca", + "c0aa25c4c16f297a262dbcfcac7bed95d2cb2dc39603eac10e5d79be50a562a3", + "68a49890f4469afebb24c28d2f1396f019607f3acc137963de0da789d93dc58f", + "f6081071fa95a6f49c049e9d2aed2d2a2632ec47635b4b497a97bab5f5add498" + ], + "extract_dir": [ "vim\\vim74", "vim\\vim74", "bin", "bin" ], + "bin": [ "vim.exe", "vimtutor.ps1" ], + "post_install": "mv -force \"$dir\\intl.dll\" \"$dir\\libintl.dll\" + if(!(test-path ~\\.vimrc)) { + cp \"$dir\\vimrc_example.vim\" ~\\.vimrc + \"set shell=$((gcm powershell).path)\\ -executionpolicy\\ bypass\" | out-file ~\\.vimrc -append -encoding ascii + echo '~/.vimrc was created with your shell set to Powershell.' + } else { echo '~/.vimrc exists, skipping' }", + "checkver": { + "url": "http://www.vim.org/download.php", + "re": "Vim ([0-9\\.]+) is the latest stable version" + }, + "env_set": { + "VIM": "$dir" + } +} diff --git a/bucket/wget.json b/bucket/wget.json index c09d0faab2..b6ebf32d70 100644 --- a/bucket/wget.json +++ b/bucket/wget.json @@ -1,29 +1,29 @@ { - "homepage": "https://eternallybored.org/misc/wget/", - "license": "GPL3", - "version": "1.16.3", - "architecture": { - "64bit": { - "url": [ - "https://eternallybored.org/misc/wget/wget-1.16.3-win64.zip", - "http://curl.haxx.se/ca/cacert.pem" - ], - "hash": [ - "85e5393ffd473f7bec40b57637fd09b6808df86c06f846b6885b261a8acac8c5", - "" - ] - }, - "32bit": { - "url": [ - "https://eternallybored.org/misc/wget/wget-1.16.3-win32.zip", - "http://curl.haxx.se/ca/cacert.pem" - ], - "hash": [ - "2ef82af3070abfdaf3862baff0bffdcb3c91c8d75e2f02c8720d90adb9d7a8f7", - "" - ] - } - }, - "bin": "wget.exe", - "post_install": "\"ca_certificate=$dir\\cacert.pem\" | out-file $dir\\wget.ini -encoding default" -} \ No newline at end of file + "homepage": "https://eternallybored.org/misc/wget/", + "license": "GPL3", + "version": "1.16.3", + "architecture": { + "64bit": { + "url": [ + "https://eternallybored.org/misc/wget/wget-1.16.3-win64.zip", + "http://curl.haxx.se/ca/cacert.pem" + ], + "hash": [ + "85e5393ffd473f7bec40b57637fd09b6808df86c06f846b6885b261a8acac8c5", + "" + ] + }, + "32bit": { + "url": [ + "https://eternallybored.org/misc/wget/wget-1.16.3-win32.zip", + "http://curl.haxx.se/ca/cacert.pem" + ], + "hash": [ + "2ef82af3070abfdaf3862baff0bffdcb3c91c8d75e2f02c8720d90adb9d7a8f7", + "" + ] + } + }, + "bin": "wget.exe", + "post_install": "\"ca_certificate=$dir\\cacert.pem\" | out-file $dir\\wget.ini -encoding default" +} diff --git a/bucket/youtube-dl.json b/bucket/youtube-dl.json index b0311c2626..1903e26720 100644 --- a/bucket/youtube-dl.json +++ b/bucket/youtube-dl.json @@ -1,12 +1,12 @@ { - "homepage": "http://rg3.github.io/youtube-dl/", - "license": "Unlicense", - "version": "2015.08.09", - "url": "https://yt-dl.org/downloads/2015.08.09/youtube-dl.exe", - "hash": "md5:3451d842fd4ca39ce6b1226fd7776bf3", - "bin": "youtube-dl.exe", - "depends": [ - "ffmpeg", - "python" - ] + "homepage": "http://rg3.github.io/youtube-dl/", + "license": "Unlicense", + "version": "2015.08.09", + "url": "https://yt-dl.org/downloads/2015.08.09/youtube-dl.exe", + "hash": "md5:3451d842fd4ca39ce6b1226fd7776bf3", + "bin": "youtube-dl.exe", + "depends": [ + "ffmpeg", + "python" + ] } diff --git a/bucket/zip.json b/bucket/zip.json index af1a172824..f97fe9947f 100644 --- a/bucket/zip.json +++ b/bucket/zip.json @@ -1,19 +1,19 @@ { - "homepage": "http://mingw.org/wiki/MSYS", - "version": "3.0", - "license": "http://www.info-zip.org/doc/LICENSE", - "url": [ - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/zip/zip-3.0-1/zip-3.0-1-msys-1.0.14-bin.tar.lzma", - "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma" - ], - "hash": [ - "ffe9b49d5302e00f8e5e6c6166e2f6e898c9459e696812284c8f37350f6fc45d", - "4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5" - ], - "bin": [ - "bin/zip.exe", - "bin/zipcloak.exe", - "bin/zipnote.exe", - "bin/zipsplit.exe" - ] -} \ No newline at end of file + "homepage": "http://mingw.org/wiki/MSYS", + "version": "3.0", + "license": "http://www.info-zip.org/doc/LICENSE", + "url": [ + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Extension/zip/zip-3.0-1/zip-3.0-1-msys-1.0.14-bin.tar.lzma", + "http://ufpr.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma" + ], + "hash": [ + "ffe9b49d5302e00f8e5e6c6166e2f6e898c9459e696812284c8f37350f6fc45d", + "4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5" + ], + "bin": [ + "bin/zip.exe", + "bin/zipcloak.exe", + "bin/zipnote.exe", + "bin/zipsplit.exe" + ] +} diff --git a/buckets.json b/buckets.json index 6378c5562b..fc651d0ad3 100644 --- a/buckets.json +++ b/buckets.json @@ -1,4 +1,4 @@ { - "extras": "https://github.com/lukesampson/scoop-extras.git", - "nirsoft": "https://github.com/kodybrown/scoop-nirsoft" -} \ No newline at end of file + "extras": "https://github.com/lukesampson/scoop-extras.git", + "nirsoft": "https://github.com/kodybrown/scoop-nirsoft" +} diff --git a/lib/buckets.ps1 b/lib/buckets.ps1 index a62ed97916..73cef15e88 100644 --- a/lib/buckets.ps1 +++ b/lib/buckets.ps1 @@ -1,34 +1,34 @@ $bucketsdir = "$scoopdir\buckets" function bucketdir($name) { - if(!$name) { return relpath "..\bucket" } # main bucket + if(!$name) { return relpath "..\bucket" } # main bucket - "$bucketsdir\$name" + "$bucketsdir\$name" } function known_bucket_repo($name) { - $dir = versiondir 'scoop' 'current' - $json = "$dir\buckets.json" - $buckets = gc $json -raw | convertfrom-json -ea stop - $buckets.$name + $dir = versiondir 'scoop' 'current' + $json = "$dir\buckets.json" + $buckets = gc $json -raw | convertfrom-json -ea stop + $buckets.$name } function apps_in_bucket($dir) { - gci $dir | ? { $_.name.endswith('.json') } | % { $_ -replace '.json$', '' } + gci $dir | ? { $_.name.endswith('.json') } | % { $_ -replace '.json$', '' } } function buckets { - $buckets = @() - if(test-path $bucketsdir) { - gci $bucketsdir | % { $buckets += $_.name } - } - $buckets + $buckets = @() + if(test-path $bucketsdir) { + gci $bucketsdir | % { $buckets += $_.name } + } + $buckets } function find_manifest($app) { - $buckets = @($null) + @(buckets) # null for main bucket - foreach($bucket in $buckets) { - $manifest = manifest $app $bucket - if($manifest) { return $manifest, $bucket } - } -} \ No newline at end of file + $buckets = @($null) + @(buckets) # null for main bucket + foreach($bucket in $buckets) { + $manifest = manifest $app $bucket + if($manifest) { return $manifest, $bucket } + } +} diff --git a/lib/commands.ps1 b/lib/commands.ps1 index 860430bf37..522eb5b1be 100644 --- a/lib/commands.ps1 +++ b/lib/commands.ps1 @@ -1,15 +1,15 @@ function command_files { - (gci (relpath '..\libexec')) ` + (gci (relpath '..\libexec')) ` + (gci "$scoopdir\shims") ` | where { $_.name -match 'scoop-.*?\.ps1$' } } function commands { - command_files | % { command_name $_ } + command_files | % { command_name $_ } } function command_name($filename) { - $filename.name | sls 'scoop-(.*?)\.ps1$' | % { $_.matches[0].groups[1].value } + $filename.name | sls 'scoop-(.*?)\.ps1$' | % { $_.matches[0].groups[1].value } } function command_path($cmd) { @@ -25,7 +25,7 @@ function command_path($cmd) { $cmd_path = $path } else { $cmd_path = $shim_path } - } + } $cmd_path } @@ -33,5 +33,5 @@ function command_path($cmd) { function exec($cmd, $arguments) { $cmd_path = command_path $cmd - & $cmd_path @arguments + & $cmd_path @arguments } diff --git a/lib/config.ps1 b/lib/config.ps1 index 9209747cb7..34e1fa951c 100644 --- a/lib/config.ps1 +++ b/lib/config.ps1 @@ -1,59 +1,59 @@ $cfgpath = "~/.scoop" function hashtable($obj) { - $h = @{ } - $obj.psobject.properties | % { - $h[$_.name] = hashtable_val $_.value - } - return $h + $h = @{ } + $obj.psobject.properties | % { + $h[$_.name] = hashtable_val $_.value + } + return $h } function hashtable_val($obj) { - if($obj -eq $null) { return $null } - if($obj -is [array]) { - $arr = @() - $obj | % { - $val = hashtable_val $_ - if($val -is [array]) { - $arr += ,@($val) - } else { - $arr += $val - } - } - return ,$arr - } - if($obj.gettype().name -eq 'pscustomobject') { # -is is unreliable - return hashtable $obj - } - return $obj # assume primitive + if($obj -eq $null) { return $null } + if($obj -is [array]) { + $arr = @() + $obj | % { + $val = hashtable_val $_ + if($val -is [array]) { + $arr += ,@($val) + } else { + $arr += $val + } + } + return ,$arr + } + if($obj.gettype().name -eq 'pscustomobject') { # -is is unreliable + return hashtable $obj + } + return $obj # assume primitive } function load_cfg { - if(!(test-path $cfgpath)) { return $null } - - try { - hashtable (gc $cfgpath -raw | convertfrom-json -ea stop) - } catch { - write-host "ERROR loading $cfgpath`: $($_.exception.message)" - } + if(!(test-path $cfgpath)) { return $null } + + try { + hashtable (gc $cfgpath -raw | convertfrom-json -ea stop) + } catch { + write-host "ERROR loading $cfgpath`: $($_.exception.message)" + } } function get_config($name) { - return $cfg.$name + return $cfg.$name } function set_config($name, $val) { - if(!$cfg) { - $cfg = @{ $name = $val } - } else { - $cfg.$name = $val - } + if(!$cfg) { + $cfg = @{ $name = $val } + } else { + $cfg.$name = $val + } - if($val -eq $null) { - $cfg.remove($name) - } + if($val -eq $null) { + $cfg.remove($name) + } - convertto-json $cfg | out-file $cfgpath -encoding utf8 + convertto-json $cfg | out-file $cfgpath -encoding utf8 } $cfg = load_cfg @@ -62,25 +62,25 @@ $cfg = load_cfg # note: '@' and ':' in password must be escaped, e.g. 'p@ssword' -> p\@ssword' $p = get_config 'proxy' if($p) { - try { - $cred, $address = $p -split '(?|]", "") } function installed($app, $global=$null) { - if($global -eq $null) { return (installed $app $true) -or (installed $app $false) } - return test-path (appdir $app $global) + if($global -eq $null) { return (installed $app $true) -or (installed $app $false) } + return test-path (appdir $app $global) } function installed_apps($global) { - $dir = appsdir $global - if(test-path $dir) { - gci $dir | where { $_.psiscontainer -and $_.name -ne 'scoop' } | % { $_.name } - } + $dir = appsdir $global + if(test-path $dir) { + gci $dir | where { $_.psiscontainer -and $_.name -ne 'scoop' } | % { $_.name } + } } # paths @@ -45,215 +45,215 @@ function strip_ext($fname) { $fname -replace '\.[^\.]*$', '' } function ensure($dir) { if(!(test-path $dir)) { mkdir $dir > $null }; resolve-path $dir } function fullpath($path) { # should be ~ rooted - $executionContext.sessionState.path.getUnresolvedProviderPathFromPSPath($path) + $executionContext.sessionState.path.getUnresolvedProviderPathFromPSPath($path) } function relpath($path) { "$($myinvocation.psscriptroot)\$path" } # relative to calling script function friendly_path($path) { - $h = $home; if(!$h.endswith('\')) { $h += '\' } - return "$path" -replace ([regex]::escape($h)), "~\" + $h = $home; if(!$h.endswith('\')) { $h += '\' } + return "$path" -replace ([regex]::escape($h)), "~\" } function is_local($path) { - ($path -notmatch '^https?://') -and (test-path $path) + ($path -notmatch '^https?://') -and (test-path $path) } # operations function dl($url,$to) { - $wc = new-object system.net.webClient - $wc.headers.add('User-Agent', 'Scoop/1.0') - $wc.downloadFile($url,$to) + $wc = new-object system.net.webClient + $wc.headers.add('User-Agent', 'Scoop/1.0') + $wc.downloadFile($url,$to) } function env($name,$global,$val='__get') { - $target = 'User'; if($global) {$target = 'Machine'} - if($val -eq '__get') { [environment]::getEnvironmentVariable($name,$target) } - else { [environment]::setEnvironmentVariable($name,$val,$target) } + $target = 'User'; if($global) {$target = 'Machine'} + if($val -eq '__get') { [environment]::getEnvironmentVariable($name,$target) } + else { [environment]::setEnvironmentVariable($name,$val,$target) } } function unzip($path,$to) { - if(!(test-path $path)) { abort "can't find $path to unzip"} - try { add-type -assembly "System.IO.Compression.FileSystem" -ea stop } - catch { unzip_old $path $to; return } # for .net earlier than 4.5 - try { - [io.compression.zipfile]::extracttodirectory($path,$to) - } catch [system.io.pathtoolongexception] { - # try to fall back to 7zip if path is too long - if(7zip_installed) { - extract_7zip $path $to $false - return - } else { - abort "unzip failed: Windows can't handle the long paths in this zip file.`nrun 'scoop install 7zip' and try again." - } - } catch { - abort "unzip failed: $_" - } + if(!(test-path $path)) { abort "can't find $path to unzip"} + try { add-type -assembly "System.IO.Compression.FileSystem" -ea stop } + catch { unzip_old $path $to; return } # for .net earlier than 4.5 + try { + [io.compression.zipfile]::extracttodirectory($path,$to) + } catch [system.io.pathtoolongexception] { + # try to fall back to 7zip if path is too long + if(7zip_installed) { + extract_7zip $path $to $false + return + } else { + abort "unzip failed: Windows can't handle the long paths in this zip file.`nrun 'scoop install 7zip' and try again." + } + } catch { + abort "unzip failed: $_" + } } function unzip_old($path,$to) { - # fallback for .net earlier than 4.5 - $shell = (new-object -com shell.application -strict) - $zipfiles = $shell.namespace("$path").items() - $to = ensure $to - $shell.namespace("$to").copyHere($zipfiles, 4) # 4 = don't show progress dialog + # fallback for .net earlier than 4.5 + $shell = (new-object -com shell.application -strict) + $zipfiles = $shell.namespace("$path").items() + $to = ensure $to + $shell.namespace("$to").copyHere($zipfiles, 4) # 4 = don't show progress dialog } function movedir($from, $to) { - $from = $from.trimend('\') - $to = $to.trimend('\') + $from = $from.trimend('\') + $to = $to.trimend('\') - $out = robocopy "$from" "$to" /e /move - if($lastexitcode -ge 8) { - throw "error moving directory: `n$out" - } + $out = robocopy "$from" "$to" /e /move + if($lastexitcode -ge 8) { + throw "error moving directory: `n$out" + } } function shim($path, $global, $name, $arg) { - if(!(test-path $path)) { abort "can't shim $(fname $path): couldn't find $path" } - $abs_shimdir = ensure (shimdir $global) - if(!$name) { $name = strip_ext (fname $path) } - - $shim = "$abs_shimdir\$($name.tolower()).ps1" - - # convert to relative path - pushd $abs_shimdir - $relative_path = resolve-path -relative $path - popd - - # note: use > for first line to replace file, then >> to append following lines - echo '# ensure $HOME is set for MSYS programs' > $shim - echo "if(!`$env:home) { `$env:home = `"`$home\`" }" >> $shim - echo 'if($env:home -eq "\") { $env:home = $env:allusersprofile }' >> $shim - echo "`$path = join-path `"`$psscriptroot`" `"$relative_path`"" >> $shim - if($arg) { - echo "`$args = '$($arg -join "', '")', `$args" >> $shim - } - echo 'if($myinvocation.expectingInput) { $input | & $path @args } else { & $path @args }' >> $shim - - if($path -match '\.exe$') { - # for programs with no awareness of any shell - $shim_exe = "$(strip_ext($shim)).shim" - cp "$(versiondir 'scoop' 'current')\supporting\shimexe\shim.exe" "$(strip_ext($shim)).exe" -force - echo "path = $(resolve-path $path)" | out-file $shim_exe -encoding oem - if($arg) { - echo "args = $arg" | out-file $shim_exe -encoding oem -append - } - } elseif($path -match '\.((bat)|(cmd))$') { - # shim .bat, .cmd so they can be used by programs with no awareness of PSH - $shim_cmd = "$(strip_ext($shim)).cmd" - ':: ensure $HOME is set for MSYS programs' | out-file $shim_cmd -encoding oem - '@if "%home%"=="" set home=%homedrive%%homepath%\' | out-file $shim_cmd -encoding oem -append - '@if "%home%"=="\" set home=%allusersprofile%\' | out-file $shim_cmd -encoding oem -append - "@`"$(resolve-path $path)`" $arg %*" | out-file $shim_cmd -encoding oem -append - } elseif($path -match '\.ps1$') { - # make ps1 accessible from cmd.exe - $shim_cmd = "$(strip_ext($shim)).cmd" - "@powershell -noprofile -ex unrestricted `"& '$(resolve-path $path)' %*;exit `$lastexitcode`"" | out-file $shim_cmd -encoding oem - } + if(!(test-path $path)) { abort "can't shim $(fname $path): couldn't find $path" } + $abs_shimdir = ensure (shimdir $global) + if(!$name) { $name = strip_ext (fname $path) } + + $shim = "$abs_shimdir\$($name.tolower()).ps1" + + # convert to relative path + pushd $abs_shimdir + $relative_path = resolve-path -relative $path + popd + + # note: use > for first line to replace file, then >> to append following lines + echo '# ensure $HOME is set for MSYS programs' > $shim + echo "if(!`$env:home) { `$env:home = `"`$home\`" }" >> $shim + echo 'if($env:home -eq "\") { $env:home = $env:allusersprofile }' >> $shim + echo "`$path = join-path `"`$psscriptroot`" `"$relative_path`"" >> $shim + if($arg) { + echo "`$args = '$($arg -join "', '")', `$args" >> $shim + } + echo 'if($myinvocation.expectingInput) { $input | & $path @args } else { & $path @args }' >> $shim + + if($path -match '\.exe$') { + # for programs with no awareness of any shell + $shim_exe = "$(strip_ext($shim)).shim" + cp "$(versiondir 'scoop' 'current')\supporting\shimexe\shim.exe" "$(strip_ext($shim)).exe" -force + echo "path = $(resolve-path $path)" | out-file $shim_exe -encoding oem + if($arg) { + echo "args = $arg" | out-file $shim_exe -encoding oem -append + } + } elseif($path -match '\.((bat)|(cmd))$') { + # shim .bat, .cmd so they can be used by programs with no awareness of PSH + $shim_cmd = "$(strip_ext($shim)).cmd" + ':: ensure $HOME is set for MSYS programs' | out-file $shim_cmd -encoding oem + '@if "%home%"=="" set home=%homedrive%%homepath%\' | out-file $shim_cmd -encoding oem -append + '@if "%home%"=="\" set home=%allusersprofile%\' | out-file $shim_cmd -encoding oem -append + "@`"$(resolve-path $path)`" $arg %*" | out-file $shim_cmd -encoding oem -append + } elseif($path -match '\.ps1$') { + # make ps1 accessible from cmd.exe + $shim_cmd = "$(strip_ext($shim)).cmd" + "@powershell -noprofile -ex unrestricted `"& '$(resolve-path $path)' %*;exit `$lastexitcode`"" | out-file $shim_cmd -encoding oem + } } function ensure_in_path($dir, $global) { - $path = env 'path' $global - $dir = fullpath $dir - if($path -notmatch [regex]::escape($dir)) { - echo "adding $(friendly_path $dir) to $(if($global){'global'}else{'your'}) path" - - env 'path' $global "$dir;$path" # for future sessions... - $env:path = "$dir;$env:path" # for this session - } + $path = env 'path' $global + $dir = fullpath $dir + if($path -notmatch [regex]::escape($dir)) { + echo "adding $(friendly_path $dir) to $(if($global){'global'}else{'your'}) path" + + env 'path' $global "$dir;$path" # for future sessions... + $env:path = "$dir;$env:path" # for this session + } } function strip_path($orig_path, $dir) { - $stripped = [string]::join(';', @( $orig_path.split(';') | ? { $_ -and $_ -ne $dir } )) - return ($stripped -ne $orig_path), $stripped + $stripped = [string]::join(';', @( $orig_path.split(';') | ? { $_ -and $_ -ne $dir } )) + return ($stripped -ne $orig_path), $stripped } function remove_from_path($dir,$global) { - $dir = fullpath $dir - - # future sessions - $was_in_path, $newpath = strip_path (env 'path' $global) $dir - if($was_in_path) { - echo "removing $(friendly_path $dir) from your path" - env 'path' $global $newpath - } - - # current session - $was_in_path, $newpath = strip_path $env:path $dir - if($was_in_path) { $env:path = $newpath } + $dir = fullpath $dir + + # future sessions + $was_in_path, $newpath = strip_path (env 'path' $global) $dir + if($was_in_path) { + echo "removing $(friendly_path $dir) from your path" + env 'path' $global $newpath + } + + # current session + $was_in_path, $newpath = strip_path $env:path $dir + if($was_in_path) { $env:path = $newpath } } function ensure_scoop_in_path($global) { - $abs_shimdir = ensure (shimdir $global) - # be aggressive (b-e-aggressive) and install scoop first in the path - ensure_in_path $abs_shimdir $global + $abs_shimdir = ensure (shimdir $global) + # be aggressive (b-e-aggressive) and install scoop first in the path + ensure_in_path $abs_shimdir $global } function ensure_robocopy_in_path { - if(!(gcm robocopy -ea ignore)) { - shim "C:\Windows\System32\Robocopy.exe" $false - } + if(!(gcm robocopy -ea ignore)) { + shim "C:\Windows\System32\Robocopy.exe" $false + } } function wraptext($text, $width) { - if(!$width) { $width = $host.ui.rawui.windowsize.width }; - $width -= 1 # be conservative: doesn't seem to print the last char - - $text -split '\r?\n' | % { - $line = '' - $_ -split ' ' | % { - if($line.length -eq 0) { $line = $_ } - elseif($line.length + $_.length + 1 -le $width) { $line += " $_" } - else { $lines += ,$line; $line = $_ } - } - $lines += ,$line - } - - $lines -join "`n" + if(!$width) { $width = $host.ui.rawui.windowsize.width }; + $width -= 1 # be conservative: doesn't seem to print the last char + + $text -split '\r?\n' | % { + $line = '' + $_ -split ' ' | % { + if($line.length -eq 0) { $line = $_ } + elseif($line.length + $_.length + 1 -le $width) { $line += " $_" } + else { $lines += ,$line; $line = $_ } + } + $lines += ,$line + } + + $lines -join "`n" } function pluralize($count, $singular, $plural) { - if($count -eq 1) { $singular } else { $plural } + if($count -eq 1) { $singular } else { $plural } } # for dealing with user aliases $default_aliases = @{ - 'cp' = 'copy-item' - 'echo' = 'write-output' - 'gc' = 'get-content' - 'gci' = 'get-childitem' - 'gcm' = 'get-command' - 'iex' = 'invoke-expression' - 'ls' = 'get-childitem' - 'mkdir' = { new-item -type directory @args } - 'mv' = 'move-item' - 'rm' = 'remove-item' - 'sc' = 'set-content' - 'select' = 'select-object' - 'sls' = 'select-string' + 'cp' = 'copy-item' + 'echo' = 'write-output' + 'gc' = 'get-content' + 'gci' = 'get-childitem' + 'gcm' = 'get-command' + 'iex' = 'invoke-expression' + 'ls' = 'get-childitem' + 'mkdir' = { new-item -type directory @args } + 'mv' = 'move-item' + 'rm' = 'remove-item' + 'sc' = 'set-content' + 'select' = 'select-object' + 'sls' = 'select-string' } function reset_alias($name, $value) { - if($existing = get-alias $name -ea ignore |? { $_.options -match 'readonly' }) { - if($existing.definition -ne $value) { - write-host "alias $name is read-only; can't reset it" -f darkyellow - } - return # already set - } - if($value -is [scriptblock]) { - new-item -path function: -name "script:$name" -value $value | out-null - return - } - - set-alias $name $value -scope script -option allscope + if($existing = get-alias $name -ea ignore |? { $_.options -match 'readonly' }) { + if($existing.definition -ne $value) { + write-host "alias $name is read-only; can't reset it" -f darkyellow + } + return # already set + } + if($value -is [scriptblock]) { + new-item -path function: -name "script:$name" -value $value | out-null + return + } + + set-alias $name $value -scope script -option allscope } function reset_aliases() { - # for aliases where there's a local function, re-alias so the function takes precedence - $aliases = get-alias |? { $_.options -notmatch 'readonly' } |% { $_.name } - get-childitem function: | % { - $fn = $_.name - if($aliases -contains $fn) { - set-alias $fn local:$fn -scope script - } - } - - # set default aliases - $default_aliases.keys | % { reset_alias $_ $default_aliases[$_] } + # for aliases where there's a local function, re-alias so the function takes precedence + $aliases = get-alias |? { $_.options -notmatch 'readonly' } |% { $_.name } + get-childitem function: | % { + $fn = $_.name + if($aliases -contains $fn) { + set-alias $fn local:$fn -scope script + } + } + + # set default aliases + $default_aliases.keys | % { reset_alias $_ $default_aliases[$_] } } diff --git a/lib/decompress.ps1 b/lib/decompress.ps1 index 6638ea764f..81014c646a 100644 --- a/lib/decompress.ps1 +++ b/lib/decompress.ps1 @@ -1,24 +1,24 @@ function 7zip_installed { cmd_available '7z' } function requires_7zip($manifest, $architecture) { - foreach($dlurl in @(url $manifest $architecture)) { - if(file_requires_7zip $dlurl) { return $true } - } + foreach($dlurl in @(url $manifest $architecture)) { + if(file_requires_7zip $dlurl) { return $true } + } } function file_requires_7zip($fname) { - $fname -match '\.((gz)|(tar)|(tgz)|(lzma)|(bz)|(7z)|(rar)|(iso)|(xz))$' + $fname -match '\.((gz)|(tar)|(tgz)|(lzma)|(bz)|(7z)|(rar)|(iso)|(xz))$' } function extract_7zip($path, $to, $recurse) { - $output = 7z x "$path" -o"$to" -y - if($lastexitcode -ne 0) { abort "exit code was $lastexitcode" } + $output = 7z x "$path" -o"$to" -y + if($lastexitcode -ne 0) { abort "exit code was $lastexitcode" } - # check for tar - $tar = (split-path $path -leaf) -replace '\.[^\.]*$', '' - if($tar -match '\.tar$') { - if(test-path "$to\$tar") { extract_7zip "$to\$tar" $to $true } - } + # check for tar + $tar = (split-path $path -leaf) -replace '\.[^\.]*$', '' + if($tar -match '\.tar$') { + if(test-path "$to\$tar") { extract_7zip "$to\$tar" $to $true } + } - if($recurse) { rm $path } # clean up intermediate files -} \ No newline at end of file + if($recurse) { rm $path } # clean up intermediate files +} diff --git a/lib/depends.ps1 b/lib/depends.ps1 index 480e3f192d..e21a7aaf13 100644 --- a/lib/depends.ps1 +++ b/lib/depends.ps1 @@ -1,53 +1,53 @@ # resolve dependencies for the supplied apps, and sort into the correct order function install_order($apps, $arch) { - $res = @() - foreach($app in $apps) { - foreach($dep in deps $app $arch) { - if($res -notcontains $dep) { $res += $dep} - } - if($res -notcontains $app) { $res += $app } - } - return $res + $res = @() + foreach($app in $apps) { + foreach($dep in deps $app $arch) { + if($res -notcontains $dep) { $res += $dep} + } + if($res -notcontains $app) { $res += $app } + } + return $res } # http://www.electricmonk.nl/docs/dependency_resolving_algorithm/dependency_resolving_algorithm.html function deps($app, $arch) { - $resolved = new-object collections.arraylist - dep_resolve $app $arch $resolved @() + $resolved = new-object collections.arraylist + dep_resolve $app $arch $resolved @() - if($resolved.count -eq 1) { return @() } # no dependencies - return $resolved[0..($resolved.count - 2)] + if($resolved.count -eq 1) { return @() } # no dependencies + return $resolved[0..($resolved.count - 2)] } function dep_resolve($app, $arch, $resolved, $unresolved) { - $unresolved += $app - - $null, $manifest, $null, $null = locate $app - if(!$manifest) { abort "couldn't find manifest for $app" } - - $deps = @(install_deps $manifest $arch) + @(runtime_deps $manifest) | select -uniq - - foreach($dep in $deps) { - if($resolved -notcontains $dep) { - if($unresolved -contains $dep) { - abort "circular dependency detected: $app -> $dep" - } - dep_resolve $dep $arch $resolved $unresolved - } - } - $resolved.add($app) > $null - $unresolved = $unresolved -ne $app # remove from unresolved + $unresolved += $app + + $null, $manifest, $null, $null = locate $app + if(!$manifest) { abort "couldn't find manifest for $app" } + + $deps = @(install_deps $manifest $arch) + @(runtime_deps $manifest) | select -uniq + + foreach($dep in $deps) { + if($resolved -notcontains $dep) { + if($unresolved -contains $dep) { + abort "circular dependency detected: $app -> $dep" + } + dep_resolve $dep $arch $resolved $unresolved + } + } + $resolved.add($app) > $null + $unresolved = $unresolved -ne $app # remove from unresolved } function runtime_deps($manifest) { - if($manifest.depends) { return $manifest.depends } + if($manifest.depends) { return $manifest.depends } } function install_deps($manifest, $arch) { - $deps = @() + $deps = @() - if(requires_7zip $manifest $arch) { $deps += "7zip" } - if($manifest.innosetup) { $deps += "innounp" } + if(requires_7zip $manifest $arch) { $deps += "7zip" } + if($manifest.innosetup) { $deps += "innounp" } - $deps -} \ No newline at end of file + $deps +} diff --git a/lib/getopt.ps1 b/lib/getopt.ps1 index 15c78fcd93..ca24270b99 100644 --- a/lib/getopt.ps1 +++ b/lib/getopt.ps1 @@ -9,65 +9,65 @@ # a parameter should end with '=' # returns @(opts hash, remaining_args array, error string) function getopt($argv, $shortopts, $longopts) { - $opts = @{}; $rem = @() + $opts = @{}; $rem = @() - function err($msg) { - $opts, $rem, $msg - } + function err($msg) { + $opts, $rem, $msg + } - function regex_escape($str) { - return [regex]::escape($str) - } + function regex_escape($str) { + return [regex]::escape($str) + } - # ensure these are arrays - $argv = @($argv) - $longopts = @($longopts) + # ensure these are arrays + $argv = @($argv) + $longopts = @($longopts) - for($i = 0; $i -lt $argv.length; $i++) { - $arg = $argv[$i] - # don't try to parse array arguments - if($arg -is [array]) { $rem += ,$arg; continue } - if($arg -is [int]) { $rem += $arg; continue } + for($i = 0; $i -lt $argv.length; $i++) { + $arg = $argv[$i] + # don't try to parse array arguments + if($arg -is [array]) { $rem += ,$arg; continue } + if($arg -is [int]) { $rem += $arg; continue } - if($arg.startswith('--')) { - $name = $arg.substring(2) + if($arg.startswith('--')) { + $name = $arg.substring(2) - $longopt = $longopts | ? { $_ -match "^$name=?$" } + $longopt = $longopts | ? { $_ -match "^$name=?$" } - if($longopt) { - if($longopt.endswith('=')) { # requires arg - if($i -eq $argv.length - 1) { - return err "option --$name requires an argument" - } - $opts.$name = $argv[++$i] - } else { - $opts.$name = $true - } - } else { - return err "option --$name not recognized" - } - } elseif($arg.startswith('-') -and $arg -ne '-') { - for($j = 1; $j -lt $arg.length; $j++) { - $letter = $arg[$j].tostring() + if($longopt) { + if($longopt.endswith('=')) { # requires arg + if($i -eq $argv.length - 1) { + return err "option --$name requires an argument" + } + $opts.$name = $argv[++$i] + } else { + $opts.$name = $true + } + } else { + return err "option --$name not recognized" + } + } elseif($arg.startswith('-') -and $arg -ne '-') { + for($j = 1; $j -lt $arg.length; $j++) { + $letter = $arg[$j].tostring() - if($shortopts -match "$(regex_escape $letter)`:?") { - $shortopt = $matches[0] - if($shortopt[1] -eq ':') { - if($j -ne $arg.length -1 -or $i -eq $argv.length - 1) { - return err "option -$letter requires an argument" - } - $opts.$letter = $argv[++$i] - } else { - $opts.$letter = $true - } - } else { - return err "option -$letter not recognized" - } - } - } else { - $rem += $arg - } - } + if($shortopts -match "$(regex_escape $letter)`:?") { + $shortopt = $matches[0] + if($shortopt[1] -eq ':') { + if($j -ne $arg.length -1 -or $i -eq $argv.length - 1) { + return err "option -$letter requires an argument" + } + $opts.$letter = $argv[++$i] + } else { + $opts.$letter = $true + } + } else { + return err "option -$letter not recognized" + } + } + } else { + $rem += $arg + } + } - $opts, $rem + $opts, $rem } diff --git a/lib/help.ps1 b/lib/help.ps1 index 445c5881f0..3bd5571e57 100644 --- a/lib/help.ps1 +++ b/lib/help.ps1 @@ -1,16 +1,16 @@ function usage($text) { - $text | sls '(?m)^# Usage: ([^\n]*)$' | % { "usage: " + $_.matches[0].groups[1].value } + $text | sls '(?m)^# Usage: ([^\n]*)$' | % { "usage: " + $_.matches[0].groups[1].value } } function summary($text) { - $text | sls '(?m)^# Summary: ([^\n]*)$' | % { $_.matches[0].groups[1].value } + $text | sls '(?m)^# Summary: ([^\n]*)$' | % { $_.matches[0].groups[1].value } } function help($text) { - $help_lines = $text | sls '(?ms)^# Help:(.(?!^[^#]))*' | % { $_.matches[0].value; } - $help_lines -replace '(?ms)^#\s?(Help: )?', '' + $help_lines = $text | sls '(?ms)^# Help:(.(?!^[^#]))*' | % { $_.matches[0].value; } + $help_lines -replace '(?ms)^#\s?(Help: )?', '' } function my_usage { # gets usage for the calling script - usage (gc $myInvocation.PSCommandPath -raw) -} \ No newline at end of file + usage (gc $myInvocation.PSCommandPath -raw) +} diff --git a/lib/install.ps1 b/lib/install.ps1 index e77d53aff3..37388e6e22 100644 --- a/lib/install.ps1 +++ b/lib/install.ps1 @@ -1,411 +1,411 @@ function nightly_version($date, $quiet = $false) { - $date_str = $date.tostring("yyyyMMdd") - if (!$quiet) { - warn "this is a nightly version: downloaded files won't be verified" - } - "nightly-$date_str" + $date_str = $date.tostring("yyyyMMdd") + if (!$quiet) { + warn "this is a nightly version: downloaded files won't be verified" + } + "nightly-$date_str" } function install_app($app, $architecture, $global) { - $app, $manifest, $bucket, $url = locate $app - $use_cache = $true - $check_hash = $true + $app, $manifest, $bucket, $url = locate $app + $use_cache = $true + $check_hash = $true - if(!$manifest) { - abort "couldn't find manifest for $app$(if($url) { " at the URL $url" })" - } + if(!$manifest) { + abort "couldn't find manifest for $app$(if($url) { " at the URL $url" })" + } - $version = $manifest.version - if(!$version) { abort "manifest doesn't specify a version" } - if($version -match '[^\w\.\-_]') { - abort "manifest version has unsupported character '$($matches[0])'" - } + $version = $manifest.version + if(!$version) { abort "manifest doesn't specify a version" } + if($version -match '[^\w\.\-_]') { + abort "manifest version has unsupported character '$($matches[0])'" + } - $is_nightly = $version -eq 'nightly' - if ($is_nightly) { - $version = nightly_version $(get-date) - $check_hash = $false - } + $is_nightly = $version -eq 'nightly' + if ($is_nightly) { + $version = nightly_version $(get-date) + $check_hash = $false + } - echo "installing $app ($version)" + echo "installing $app ($version)" - $dir = ensure (versiondir $app $version $global) + $dir = ensure (versiondir $app $version $global) - $fname = dl_urls $app $version $manifest $architecture $dir $use_cache $check_hash - unpack_inno $fname $manifest $dir - pre_install $manifest - run_installer $fname $manifest $architecture $dir - ensure_install_dir_not_in_path $dir $global - create_shims $manifest $dir $global - if($global) { ensure_scoop_in_path $global } # can assume local scoop is in path - env_add_path $manifest $dir $global - env_set $manifest $dir $global - post_install $manifest + $fname = dl_urls $app $version $manifest $architecture $dir $use_cache $check_hash + unpack_inno $fname $manifest $dir + pre_install $manifest + run_installer $fname $manifest $architecture $dir + ensure_install_dir_not_in_path $dir $global + create_shims $manifest $dir $global + if($global) { ensure_scoop_in_path $global } # can assume local scoop is in path + env_add_path $manifest $dir $global + env_set $manifest $dir $global + post_install $manifest - # save info for uninstall - save_installed_manifest $app $bucket $dir $url - save_install_info @{ 'architecture' = $architecture; 'url' = $url; 'bucket' = $bucket } $dir + # save info for uninstall + save_installed_manifest $app $bucket $dir $url + save_install_info @{ 'architecture' = $architecture; 'url' = $url; 'bucket' = $bucket } $dir - success "$app ($version) was installed successfully!" + success "$app ($version) was installed successfully!" - show_notes $manifest + show_notes $manifest } function ensure_architecture($architecture_opt) { - switch($architecture_opt) { - '' { return default_architecture } - { @('32bit','64bit') -contains $_ } { return $_ } - default { abort "invalid architecture: '$architecture'"} - } + switch($architecture_opt) { + '' { return default_architecture } + { @('32bit','64bit') -contains $_ } { return $_ } + default { abort "invalid architecture: '$architecture'"} + } } function cache_path($app, $version, $url) { - "$cachedir\$app#$version#$($url -replace '[^\w\.\-]+', '_')" + "$cachedir\$app#$version#$($url -replace '[^\w\.\-]+', '_')" } function appname_from_url($url) { - (split-path $url -leaf) -replace '.json$', '' + (split-path $url -leaf) -replace '.json$', '' } function locate($app) { - $manifest, $bucket, $url = $null, $null, $null - - # check if app is a url - if($app -match '^((ht)|f)tps?://') { - $url = $app - $app = appname_from_url $url - $manifest = url_manifest $url - } else { - # check buckets - $manifest, $bucket = find_manifest $app - - if(!$manifest) { - # couldn't find app in buckets: check if it's a local path - $path = $app - if(!$path.endswith('.json')) { $path += '.json' } - if(test-path $path) { - $url = "$(resolve-path $path)" - $app = appname_from_url $url - $manifest, $bucket = url_manifest $url - } - } - } - - return $app, $manifest, $bucket, $url + $manifest, $bucket, $url = $null, $null, $null + + # check if app is a url + if($app -match '^((ht)|f)tps?://') { + $url = $app + $app = appname_from_url $url + $manifest = url_manifest $url + } else { + # check buckets + $manifest, $bucket = find_manifest $app + + if(!$manifest) { + # couldn't find app in buckets: check if it's a local path + $path = $app + if(!$path.endswith('.json')) { $path += '.json' } + if(test-path $path) { + $url = "$(resolve-path $path)" + $app = appname_from_url $url + $manifest, $bucket = url_manifest $url + } + } + } + + return $app, $manifest, $bucket, $url } function dl_with_cache($app, $version, $url, $to, $cookies, $use_cache = $true) { - $cached = fullpath (cache_path $app $version $url) - if(!$use_cache) { warn "cache is being ignored" } + $cached = fullpath (cache_path $app $version $url) + if(!$use_cache) { warn "cache is being ignored" } - if(!(test-path $cached) -or !$use_cache) { - $null = ensure $cachedir - write-host "downloading $url..." -nonewline - dl_progress $url "$cached.download" $cookies - mv "$cached.download" $cached -force - write-host "done" - } else { write-host "loading $url from cache..."} - cp $cached $to + if(!(test-path $cached) -or !$use_cache) { + $null = ensure $cachedir + write-host "downloading $url..." -nonewline + dl_progress $url "$cached.download" $cookies + mv "$cached.download" $cached -force + write-host "done" + } else { write-host "loading $url from cache..."} + cp $cached $to } function dl_progress($url, $to, $cookies) { - $wc = new-object net.webclient - $wc.headers.add('User-Agent', 'Scoop/1.0') - $wc.headers.add('Cookie', (cookie_header $cookies)) - - if([console]::isoutputredirected) { - # can't set cursor position: just do simple download - $wc.downloadfile($url, $to) - return - } - - $left = [console]::cursorleft - $top = [console]::cursortop - register-objectevent $wc downloadprogresschanged progress | out-null - register-objectevent $wc downloadfilecompleted complete | out-null - try { - $wc.downloadfileasync($url, $to) - - function is_complete { - try { - $complete = get-event complete -ea stop - $err = $complete.sourceeventargs.error - if($err) { abort "$($err.message)" } - $true - } catch { - $false - } - } - - $last_p = -1 - while(!(is_complete)) { - $e = wait-event progress -timeout 1 - if(!$e) { continue } # avoid deadlock - - remove-event progress - $p = $e.sourceeventargs.progresspercentage - if($p -ne $last_p) { - [console]::setcursorposition($left, $top) - write-host "$p%" -nonewline - $last_p = $p - } - } - remove-event complete - } finally { - remove-event * - unregister-event progress - unregister-event complete - - $wc.cancelasync() - $wc.dispose() - } - [console]::setcursorposition($left, $top) + $wc = new-object net.webclient + $wc.headers.add('User-Agent', 'Scoop/1.0') + $wc.headers.add('Cookie', (cookie_header $cookies)) + + if([console]::isoutputredirected) { + # can't set cursor position: just do simple download + $wc.downloadfile($url, $to) + return + } + + $left = [console]::cursorleft + $top = [console]::cursortop + register-objectevent $wc downloadprogresschanged progress | out-null + register-objectevent $wc downloadfilecompleted complete | out-null + try { + $wc.downloadfileasync($url, $to) + + function is_complete { + try { + $complete = get-event complete -ea stop + $err = $complete.sourceeventargs.error + if($err) { abort "$($err.message)" } + $true + } catch { + $false + } + } + + $last_p = -1 + while(!(is_complete)) { + $e = wait-event progress -timeout 1 + if(!$e) { continue } # avoid deadlock + + remove-event progress + $p = $e.sourceeventargs.progresspercentage + if($p -ne $last_p) { + [console]::setcursorposition($left, $top) + write-host "$p%" -nonewline + $last_p = $p + } + } + remove-event complete + } finally { + remove-event * + unregister-event progress + unregister-event complete + + $wc.cancelasync() + $wc.dispose() + } + [console]::setcursorposition($left, $top) } function dl_urls($app, $version, $manifest, $architecture, $dir, $use_cache = $true, $check_hash = $true) { - # can be multiple urls: if there are, then msi or installer should go last, - # so that $fname is set properly - $urls = @(url $manifest $architecture) - - # can be multiple cookies: they will be used for all HTTP requests. - $cookies = $manifest.cookie - - $fname = $null - - # extract_dir and extract_to in manifest are like queues: for each url that - # needs to be extracted, will get the next dir from the queue - $extract_dirs = @(extract_dir $manifest $architecture) - $extract_tos = @(extract_to $manifest $architecture) - $extracted = 0; - - foreach($url in $urls) { - $fname = split-path $url -leaf - - dl_with_cache $app $version $url "$dir\$fname" $cookies $use_cache - - if($check_hash) { - $ok, $err = check_hash "$dir\$fname" $url $manifest $architecture - if(!$ok) { - # rm cached - $cached = cache_path $app $version $url - if(test-path $cached) { rm -force $cached } - abort $err - } - } - - $extract_dir = $extract_dirs[$extracted] - $extract_to = $extract_tos[$extracted] - - # work out extraction method, if applicable - $extract_fn = $null - if($fname -match '\.zip$') { # unzip - $extract_fn = 'unzip' - } elseif($fname -match '\.msi$') { - # check manifest doesn't use deprecated install method - $msi = msi $manifest $architecture - if(!$msi) { - $extract_fn = 'extract_msi' - } else { - warn "MSI install is deprecated. If you maintain this manifest, please refer to the manifest reference docs" - } - } elseif(file_requires_7zip $fname) { # 7zip - if(!(7zip_installed)) { - warn "aborting: you'll need to run 'scoop uninstall $app' to clean up" - abort "7-zip is required. you can install it with 'scoop install 7zip'" - } - $extract_fn = 'extract_7zip' - } - - if($extract_fn) { - write-host "extracting..." -nonewline - $null = mkdir "$dir\_scoop_extract" - & $extract_fn "$dir\$fname" "$dir\_scoop_extract" - if ($extract_to) { - $null = mkdir "$dir\$extract_to" -force - } - # fails if zip contains long paths (e.g. atom.json) - #cp "$dir\_scoop_extract\$extract_dir\*" "$dir\$extract_to" -r -force -ea stop - movedir "$dir\_scoop_extract\$extract_dir" "$dir\$extract_to" - - if(test-path "$dir\_scoop_extract") { # might have been moved by movedir - try { - rm -r -force "$dir\_scoop_extract" -ea stop - } catch [system.io.pathtoolongexception] { - cmd /c "rmdir /s /q $dir\_scoop_extract" - } - } - - rm "$dir\$fname" - write-host "done" - - $extracted++ - } - } - - $fname # returns the last downloaded file + # can be multiple urls: if there are, then msi or installer should go last, + # so that $fname is set properly + $urls = @(url $manifest $architecture) + + # can be multiple cookies: they will be used for all HTTP requests. + $cookies = $manifest.cookie + + $fname = $null + + # extract_dir and extract_to in manifest are like queues: for each url that + # needs to be extracted, will get the next dir from the queue + $extract_dirs = @(extract_dir $manifest $architecture) + $extract_tos = @(extract_to $manifest $architecture) + $extracted = 0; + + foreach($url in $urls) { + $fname = split-path $url -leaf + + dl_with_cache $app $version $url "$dir\$fname" $cookies $use_cache + + if($check_hash) { + $ok, $err = check_hash "$dir\$fname" $url $manifest $architecture + if(!$ok) { + # rm cached + $cached = cache_path $app $version $url + if(test-path $cached) { rm -force $cached } + abort $err + } + } + + $extract_dir = $extract_dirs[$extracted] + $extract_to = $extract_tos[$extracted] + + # work out extraction method, if applicable + $extract_fn = $null + if($fname -match '\.zip$') { # unzip + $extract_fn = 'unzip' + } elseif($fname -match '\.msi$') { + # check manifest doesn't use deprecated install method + $msi = msi $manifest $architecture + if(!$msi) { + $extract_fn = 'extract_msi' + } else { + warn "MSI install is deprecated. If you maintain this manifest, please refer to the manifest reference docs" + } + } elseif(file_requires_7zip $fname) { # 7zip + if(!(7zip_installed)) { + warn "aborting: you'll need to run 'scoop uninstall $app' to clean up" + abort "7-zip is required. you can install it with 'scoop install 7zip'" + } + $extract_fn = 'extract_7zip' + } + + if($extract_fn) { + write-host "extracting..." -nonewline + $null = mkdir "$dir\_scoop_extract" + & $extract_fn "$dir\$fname" "$dir\_scoop_extract" + if ($extract_to) { + $null = mkdir "$dir\$extract_to" -force + } + # fails if zip contains long paths (e.g. atom.json) + #cp "$dir\_scoop_extract\$extract_dir\*" "$dir\$extract_to" -r -force -ea stop + movedir "$dir\_scoop_extract\$extract_dir" "$dir\$extract_to" + + if(test-path "$dir\_scoop_extract") { # might have been moved by movedir + try { + rm -r -force "$dir\_scoop_extract" -ea stop + } catch [system.io.pathtoolongexception] { + cmd /c "rmdir /s /q $dir\_scoop_extract" + } + } + + rm "$dir\$fname" + write-host "done" + + $extracted++ + } + } + + $fname # returns the last downloaded file } function cookie_header($cookies) { - if(!$cookies) { return } + if(!$cookies) { return } - $vals = $cookies.psobject.properties | % { - "$($_.name)=$($_.value)" - } + $vals = $cookies.psobject.properties | % { + "$($_.name)=$($_.value)" + } - [string]::join(';', $vals) + [string]::join(';', $vals) } function is_in_dir($dir, $check) { - $check = "$(fullpath $check)" - $dir = "$(fullpath $dir)" - $check -match "^$([regex]::escape("$dir"))(\\|`$)" + $check = "$(fullpath $check)" + $dir = "$(fullpath $dir)" + $check -match "^$([regex]::escape("$dir"))(\\|`$)" } # hashes function hash_for_url($manifest, $url, $arch) { - $hashes = @(hash $manifest $arch) | ? { $_ -ne $null }; + $hashes = @(hash $manifest $arch) | ? { $_ -ne $null }; - if($hashes.length -eq 0) { return $null } + if($hashes.length -eq 0) { return $null } - $urls = @(url $manifest $arch) + $urls = @(url $manifest $arch) - $index = [array]::indexof($urls, $url) - if($index -eq -1) { abort "couldn't find hash in manifest for $url" } + $index = [array]::indexof($urls, $url) + if($index -eq -1) { abort "couldn't find hash in manifest for $url" } - @($hashes)[$index] + @($hashes)[$index] } # returns (ok, err) function check_hash($file, $url, $manifest, $arch) { - $hash = hash_for_url $manifest $url $arch - if(!$hash) { - warn "warning: no hash in manifest. sha256 is:`n$(compute_hash (fullpath $file) 'sha256')" - return $true - } + $hash = hash_for_url $manifest $url $arch + if(!$hash) { + warn "warning: no hash in manifest. sha256 is:`n$(compute_hash (fullpath $file) 'sha256')" + return $true + } - write-host "checking hash..." -nonewline - $type, $expected = $hash.split(':') - if(!$expected) { - # no type specified, assume sha256 - $type, $expected = 'sha256', $type - } + write-host "checking hash..." -nonewline + $type, $expected = $hash.split(':') + if(!$expected) { + # no type specified, assume sha256 + $type, $expected = 'sha256', $type + } - if(@('md5','sha1','sha256') -notcontains $type) { - return $false, "hash type $type isn't supported" - } + if(@('md5','sha1','sha256') -notcontains $type) { + return $false, "hash type $type isn't supported" + } - $actual = compute_hash (fullpath $file) $type + $actual = compute_hash (fullpath $file) $type - if($actual -ne $expected) { - return $false, "hash check failed for $url. expected: $($expected), actual: $($actual)!" - } - write-host "ok" - return $true + if($actual -ne $expected) { + return $false, "hash check failed for $url. expected: $($expected), actual: $($actual)!" + } + write-host "ok" + return $true } function compute_hash($file, $algname) { - $alg = [system.security.cryptography.hashalgorithm]::create($algname) - $fs = [system.io.file]::openread($file) - try { - $hexbytes = $alg.computehash($fs) | % { $_.tostring('x2') } - [string]::join('', $hexbytes) - } finally { - $fs.dispose() - $alg.dispose() - } + $alg = [system.security.cryptography.hashalgorithm]::create($algname) + $fs = [system.io.file]::openread($file) + try { + $hexbytes = $alg.computehash($fs) | % { $_.tostring('x2') } + [string]::join('', $hexbytes) + } finally { + $fs.dispose() + $alg.dispose() + } } function cmd_available($cmd) { - try { gcm $cmd -ea stop } catch { return $false } - $true + try { gcm $cmd -ea stop } catch { return $false } + $true } # for dealing with installers function args($config, $dir) { - if($config) { return $config | % { (format $_ @{'dir'=$dir}) } } - @() + if($config) { return $config | % { (format $_ @{'dir'=$dir}) } } + @() } function run($exe, $arg, $msg, $continue_exit_codes) { - if($msg) { write-host $msg -nonewline } - try { - $proc = start-process $exe -wait -ea stop -passthru -arg $arg - if($proc.exitcode -ne 0) { - if($continue_exit_codes -and ($continue_exit_codes.containskey($proc.exitcode))) { - warn $continue_exit_codes[$proc.exitcode] - return $true - } - write-host "exit code was $($proc.exitcode)"; return $false - } - } catch { - write-host -f darkred $_.exception.tostring() - return $false - } - if($msg) { write-host "done" } - return $true + if($msg) { write-host $msg -nonewline } + try { + $proc = start-process $exe -wait -ea stop -passthru -arg $arg + if($proc.exitcode -ne 0) { + if($continue_exit_codes -and ($continue_exit_codes.containskey($proc.exitcode))) { + warn $continue_exit_codes[$proc.exitcode] + return $true + } + write-host "exit code was $($proc.exitcode)"; return $false + } + } catch { + write-host -f darkred $_.exception.tostring() + return $false + } + if($msg) { write-host "done" } + return $true } function unpack_inno($fname, $manifest, $dir) { - if(!$manifest.innosetup) { return } + if(!$manifest.innosetup) { return } - write-host "unpacking innosetup..." -nonewline - innounp -x -d"$dir\_scoop_unpack" "$dir\$fname" > "$dir\innounp.log" - if($lastexitcode -ne 0) { - abort "failed to unpack innosetup file. see $dir\innounp.log" - } + write-host "unpacking innosetup..." -nonewline + innounp -x -d"$dir\_scoop_unpack" "$dir\$fname" > "$dir\innounp.log" + if($lastexitcode -ne 0) { + abort "failed to unpack innosetup file. see $dir\innounp.log" + } - gci "$dir\_scoop_unpack\{app}" -r | mv -dest "$dir" -force + gci "$dir\_scoop_unpack\{app}" -r | mv -dest "$dir" -force - rmdir -r -force "$dir\_scoop_unpack" + rmdir -r -force "$dir\_scoop_unpack" - rm "$dir\$fname" - write-host "done" + rm "$dir\$fname" + write-host "done" } function run_installer($fname, $manifest, $architecture, $dir) { - # MSI or other installer - $msi = msi $manifest $architecture - $installer = installer $manifest $architecture + # MSI or other installer + $msi = msi $manifest $architecture + $installer = installer $manifest $architecture - if($msi) { - install_msi $fname $dir $msi - } elseif($installer) { - install_prog $fname $dir $installer - } + if($msi) { + install_msi $fname $dir $msi + } elseif($installer) { + install_prog $fname $dir $installer + } } # deprecated (see also msi_installed) function install_msi($fname, $dir, $msi) { - $msifile = "$dir\$(coalesce $msi.file "$fname")" - if(!(is_in_dir $dir $msifile)) { - abort "error in manifest: MSI file $msifile is outside the app directory" - } - if(!($msi.code)) { abort "error in manifest: couldn't find MSI code"} - if(msi_installed $msi.code) { abort "the MSI package is already installed on this system" } + $msifile = "$dir\$(coalesce $msi.file "$fname")" + if(!(is_in_dir $dir $msifile)) { + abort "error in manifest: MSI file $msifile is outside the app directory" + } + if(!($msi.code)) { abort "error in manifest: couldn't find MSI code"} + if(msi_installed $msi.code) { abort "the MSI package is already installed on this system" } - $logfile = "$dir\install.log" + $logfile = "$dir\install.log" - $arg = @("/i `"$msifile`"", '/norestart', "/lvp `"$logfile`"", "TARGETDIR=`"$dir`"", - "INSTALLDIR=`"$dir`"") + @(args $msi.args $dir) + $arg = @("/i `"$msifile`"", '/norestart', "/lvp `"$logfile`"", "TARGETDIR=`"$dir`"", + "INSTALLDIR=`"$dir`"") + @(args $msi.args $dir) - if($msi.silent) { $arg += '/qn', 'ALLUSERS=2', 'MSIINSTALLPERUSER=1' } - else { $arg += '/qb-!' } + if($msi.silent) { $arg += '/qn', 'ALLUSERS=2', 'MSIINSTALLPERUSER=1' } + else { $arg += '/qb-!' } - $continue_exit_codes = @{ 3010 = "a restart is required to complete installation" } + $continue_exit_codes = @{ 3010 = "a restart is required to complete installation" } - $installed = run 'msiexec' $arg "running installer..." $continue_exit_codes - if(!$installed) { - abort "installation aborted. you might need to run 'scoop uninstall $app' before trying again." - } - rm $logfile - rm $msifile + $installed = run 'msiexec' $arg "running installer..." $continue_exit_codes + if(!$installed) { + abort "installation aborted. you might need to run 'scoop uninstall $app' before trying again." + } + rm $logfile + rm $msifile } function extract_msi($path, $to) { - $logfile = "$(split-path $path)\msi.log" - $ok = run 'msiexec' @('/a', "`"$path`"", '/qn', "TARGETDIR=`"$to`"", "/lwe `"$logfile`"") - if(!$ok) { abort "failed to extract files from $path.`nlog file: $(friendly_path $logfile)" } - if(test-path $logfile) { rm $logfile } + $logfile = "$(split-path $path)\msi.log" + $ok = run 'msiexec' @('/a', "`"$path`"", '/qn', "TARGETDIR=`"$to`"", "/lwe `"$logfile`"") + if(!$ok) { abort "failed to extract files from $path.`nlog file: $(friendly_path $logfile)" } + if(test-path $logfile) { rm $logfile } } # deprecated @@ -413,253 +413,253 @@ function extract_msi($path, $to) { # so this uses the [wmi] type accelerator instead # http://blogs.technet.com/b/heyscriptingguy/archive/2011/12/14/use-powershell-to-find-and-uninstall-software.aspx function msi_installed($code) { - $path = "hklm:\software\microsoft\windows\currentversion\uninstall\$code" - if(!(test-path $path)) { return $false } - $key = gi $path - $name = $key.getvalue('displayname') - $version = $key.getvalue('displayversion') - $classkey = "IdentifyingNumber=`"$code`",Name=`"$name`",Version=`"$version`"" - try { $wmi = [wmi]"Win32_Product.$classkey"; $true } catch { $false } + $path = "hklm:\software\microsoft\windows\currentversion\uninstall\$code" + if(!(test-path $path)) { return $false } + $key = gi $path + $name = $key.getvalue('displayname') + $version = $key.getvalue('displayversion') + $classkey = "IdentifyingNumber=`"$code`",Name=`"$name`",Version=`"$version`"" + try { $wmi = [wmi]"Win32_Product.$classkey"; $true } catch { $false } } function install_prog($fname, $dir, $installer) { - $prog = "$dir\$(coalesce $installer.file "$fname")" - if(!(is_in_dir $dir $prog)) { - abort "error in manifest: installer $prog is outside the app directory" - } - $arg = @(args $installer.args $dir) - - if($prog.endswith('.ps1')) { - & $prog @arg - } else { - $installed = run $prog $arg "running installer..." - if(!$installed) { - abort "installation aborted. you might need to run 'scoop uninstall $app' before trying again." - } - rm $prog - } + $prog = "$dir\$(coalesce $installer.file "$fname")" + if(!(is_in_dir $dir $prog)) { + abort "error in manifest: installer $prog is outside the app directory" + } + $arg = @(args $installer.args $dir) + + if($prog.endswith('.ps1')) { + & $prog @arg + } else { + $installed = run $prog $arg "running installer..." + if(!$installed) { + abort "installation aborted. you might need to run 'scoop uninstall $app' before trying again." + } + rm $prog + } } function run_uninstaller($manifest, $architecture, $dir) { - $msi = msi $manifest $architecture - $uninstaller = uninstaller $manifest $architecture - - if($msi -or $uninstaller) { - $exe = $null; $arg = $null; $continue_exit_codes = @{} - - if($msi) { - $code = $msi.code - $exe = "msiexec"; - $arg = @("/norestart", "/x $code") - if($msi.silent) { - $arg += '/qn', 'ALLUSERS=2', 'MSIINSTALLPERUSER=1' - } else { - $arg += '/qb-!' - } - - $continue_exit_codes.1605 = 'not installed, skipping' - $continue_exit_codes.3010 = 'restart required' - } elseif($uninstaller) { - $exe = "$dir\$($uninstaller.file)" - $arg = args $uninstaller.args - if(!(is_in_dir $dir $exe)) { - warn "error in manifest: installer $exe is outside the app directory, skipping" - $exe = $null; - } elseif(!(test-path $exe)) { - warn "uninstaller $exe is missing, skipping" - $exe = $null; - } - } - - if($exe) { - $uninstalled = run $exe $arg "running uninstaller..." $continue_exit_codes - if(!$uninstalled) { abort "uninstallation aborted." } - } - } + $msi = msi $manifest $architecture + $uninstaller = uninstaller $manifest $architecture + + if($msi -or $uninstaller) { + $exe = $null; $arg = $null; $continue_exit_codes = @{} + + if($msi) { + $code = $msi.code + $exe = "msiexec"; + $arg = @("/norestart", "/x $code") + if($msi.silent) { + $arg += '/qn', 'ALLUSERS=2', 'MSIINSTALLPERUSER=1' + } else { + $arg += '/qb-!' + } + + $continue_exit_codes.1605 = 'not installed, skipping' + $continue_exit_codes.3010 = 'restart required' + } elseif($uninstaller) { + $exe = "$dir\$($uninstaller.file)" + $arg = args $uninstaller.args + if(!(is_in_dir $dir $exe)) { + warn "error in manifest: installer $exe is outside the app directory, skipping" + $exe = $null; + } elseif(!(test-path $exe)) { + warn "uninstaller $exe is missing, skipping" + $exe = $null; + } + } + + if($exe) { + $uninstalled = run $exe $arg "running uninstaller..." $continue_exit_codes + if(!$uninstalled) { abort "uninstallation aborted." } + } + } } # get target, name, arguments for shim function shim_def($item) { - if($item -is [array]) { return $item } - return $item, (strip_ext (fname $item)), $null + if($item -is [array]) { return $item } + return $item, (strip_ext (fname $item)), $null } function create_shims($manifest, $dir, $global) { - $manifest.bin | ?{ $_ -ne $null } | % { - $target, $name, $arg = shim_def $_ - echo "creating shim for $name" + $manifest.bin | ?{ $_ -ne $null } | % { + $target, $name, $arg = shim_def $_ + echo "creating shim for $name" - # check valid bin - $bin = "$dir\$target" - if(!(is_in_dir $dir $bin)) { - abort "error in manifest: bin '$target' is outside the app directory" - } - if(!(test-path $bin)) { abort "can't shim $target`: file doesn't exist"} + # check valid bin + $bin = "$dir\$target" + if(!(is_in_dir $dir $bin)) { + abort "error in manifest: bin '$target' is outside the app directory" + } + if(!(test-path $bin)) { abort "can't shim $target`: file doesn't exist"} - shim "$dir\$target" $global $name $arg - } + shim "$dir\$target" $global $name $arg + } } function rm_shim($name, $shimdir) { - $shim = "$shimdir\$name.ps1" + $shim = "$shimdir\$name.ps1" - if(!(test-path $shim)) { # handle no shim from failed install - warn "shim for $name is missing, skipping" - } else { - echo "removing shim for $name" - rm $shim - } + if(!(test-path $shim)) { # handle no shim from failed install + warn "shim for $name is missing, skipping" + } else { + echo "removing shim for $name" + rm $shim + } - # other shim types might be present - '.exe', '.shim', '.cmd' | % { - if(test-path "$shimdir\$name$_") { rm "$shimdir\$name$_" } - } + # other shim types might be present + '.exe', '.shim', '.cmd' | % { + if(test-path "$shimdir\$name$_") { rm "$shimdir\$name$_" } + } } function rm_shims($manifest, $global) { - $manifest.bin | ?{ $_ -ne $null } | % { - $target, $name, $null = shim_def $_ - $shimdir = shimdir $global + $manifest.bin | ?{ $_ -ne $null } | % { + $target, $name, $null = shim_def $_ + $shimdir = shimdir $global - rm_shim $name $shimdir - } + rm_shim $name $shimdir + } } # to undo after installers add to path so that scoop manifest can keep track of this instead function ensure_install_dir_not_in_path($dir, $global) { - $path = (env 'path' $global) + $path = (env 'path' $global) - $fixed, $removed = find_dir_or_subdir $path "$dir" - if($removed) { - $removed | % { "installer added $(friendly_path $_) to path, removing"} - env 'path' $global $fixed - } + $fixed, $removed = find_dir_or_subdir $path "$dir" + if($removed) { + $removed | % { "installer added $(friendly_path $_) to path, removing"} + env 'path' $global $fixed + } - if(!$global) { - $fixed, $removed = find_dir_or_subdir (env 'path' $true) "$dir" - if($removed) { - $removed | % { warn "installer added $_ to system path: you might want to remove this manually (requires admin permission)"} - } - } + if(!$global) { + $fixed, $removed = find_dir_or_subdir (env 'path' $true) "$dir" + if($removed) { + $removed | % { warn "installer added $_ to system path: you might want to remove this manually (requires admin permission)"} + } + } } function find_dir_or_subdir($path, $dir) { - $dir = $dir.trimend('\') - $fixed = @() - $removed = @() - $path.split(';') | % { - if($_) { - if(($_ -eq $dir) -or ($_ -like "$dir\*")) { $removed += $_ } - else { $fixed += $_ } - } - } - return [string]::join(';', $fixed), $removed + $dir = $dir.trimend('\') + $fixed = @() + $removed = @() + $path.split(';') | % { + if($_) { + if(($_ -eq $dir) -or ($_ -like "$dir\*")) { $removed += $_ } + else { $fixed += $_ } + } + } + return [string]::join(';', $fixed), $removed } function env_add_path($manifest, $dir, $global) { - $manifest.env_add_path | ? { $_ } | % { - $path_dir = "$dir\$($_)" - if(!(is_in_dir $dir $path_dir)) { - abort "error in manifest: env_add_path '$_' is outside the app directory" - } - add_first_in_path $path_dir $global - } + $manifest.env_add_path | ? { $_ } | % { + $path_dir = "$dir\$($_)" + if(!(is_in_dir $dir $path_dir)) { + abort "error in manifest: env_add_path '$_' is outside the app directory" + } + add_first_in_path $path_dir $global + } } function add_first_in_path($dir, $global) { - $dir = fullpath $dir + $dir = fullpath $dir - # future sessions - $null, $currpath = strip_path (env 'path' $global) $dir - env 'path' $global "$dir;$currpath" + # future sessions + $null, $currpath = strip_path (env 'path' $global) $dir + env 'path' $global "$dir;$currpath" - # this session - $null, $env:path = strip_path $env:path $dir - $env:path = "$dir;$env:path" + # this session + $null, $env:path = strip_path $env:path $dir + $env:path = "$dir;$env:path" } function env_rm_path($manifest, $dir, $global) { - # remove from path - $manifest.env_add_path | ? { $_ } | % { - $path_dir = "$dir\$($_)" - remove_from_path $path_dir $global - } + # remove from path + $manifest.env_add_path | ? { $_ } | % { + $path_dir = "$dir\$($_)" + remove_from_path $path_dir $global + } } function env_set($manifest, $dir, $global) { - if($manifest.env_set) { - $manifest.env_set | gm -member noteproperty | % { - $name = $_.name; - $val = format $manifest.env_set.$($_.name) @{ "dir" = $dir } - env $name $global $val - sc env:\$name $val - } - } + if($manifest.env_set) { + $manifest.env_set | gm -member noteproperty | % { + $name = $_.name; + $val = format $manifest.env_set.$($_.name) @{ "dir" = $dir } + env $name $global $val + sc env:\$name $val + } + } } function env_rm($manifest, $global) { - if($manifest.env_set) { - $manifest.env_set | gm -member noteproperty | % { - $name = $_.name - env $name $global $null - if(test-path env:\$name) { rm env:\$name } - } - } + if($manifest.env_set) { + $manifest.env_set | gm -member noteproperty | % { + $name = $_.name + env $name $global $null + if(test-path env:\$name) { rm env:\$name } + } + } } function pre_install($manifest) { - $manifest.pre_install | ? { $_ } | % { - echo "running pre-install script..." - iex $_ - } + $manifest.pre_install | ? { $_ } | % { + echo "running pre-install script..." + iex $_ + } } function post_install($manifest) { - $manifest.post_install | ? { $_ } | % { - echo "running post-install script..." - iex $_ - } + $manifest.post_install | ? { $_ } | % { + echo "running post-install script..." + iex $_ + } } function show_notes($manifest) { - if($manifest.notes) { - echo "Notes" - echo "-----" - echo (wraptext $manifest.notes) - } + if($manifest.notes) { + echo "Notes" + echo "-----" + echo (wraptext $manifest.notes) + } } function all_installed($apps, $global) { - $apps | ? { installed $_ $global } + $apps | ? { installed $_ $global } } function prune_installed($apps) { - $installed = @(all_installed $apps $true) + @(all_installed $apps $false) - $apps | ? { $installed -notcontains $_ } + $installed = @(all_installed $apps $true) + @(all_installed $apps $false) + $apps | ? { $installed -notcontains $_ } } # check whether the app failed to install function failed($app, $global) { - $ver = current_version $app $global - if(!$ver) { return $false } - $info = install_info $app $ver $global - if(!$info) { return $true } - return $false + $ver = current_version $app $global + if(!$ver) { return $false } + $info = install_info $app $ver $global + if(!$info) { return $true } + return $false } function ensure_none_failed($apps, $global) { - foreach($app in $apps) { - if(failed $app $global) { - abort "$app install failed previously. please uninstall it and try again." - } - } + foreach($app in $apps) { + if(failed $app $global) { + abort "$app install failed previously. please uninstall it and try again." + } + } } # travelling directories have their contents moved from # $from to $to when the app is updated. # any files or directories that already exist in $to are skipped function travel_dir($from, $to) { - $skip_dirs = ls $to -dir | % { "`"$from\$_`"" } - $skip_files = ls $to -file | % { "`"$from\$_`"" } + $skip_dirs = ls $to -dir | % { "`"$from\$_`"" } + $skip_files = ls $to -file | % { "`"$from\$_`"" } - robocopy $from $to /s /move /xd $skip_dirs /xf $skip_files > $null + robocopy $from $to /s /move /xd $skip_dirs /xf $skip_files > $null } diff --git a/lib/manifest.ps1 b/lib/manifest.ps1 index 2dfd5a10bb..c79bc4f353 100644 --- a/lib/manifest.ps1 +++ b/lib/manifest.ps1 @@ -2,66 +2,66 @@ function manifest_path($app, $bucket) { - "$(bucketdir $bucket)\$(sanitary_path $app).json" + "$(bucketdir $bucket)\$(sanitary_path $app).json" } function parse_json($path) { - if(!(test-path $path)) { return $null } - gc $path -raw | convertfrom-json -ea stop + if(!(test-path $path)) { return $null } + gc $path -raw | convertfrom-json -ea stop } function url_manifest($url) { - $str = $null - try { - $str = (new-object net.webclient).downloadstring($url) - } catch [system.management.automation.methodinvocationexception] { - warn "error: $($_.exception.innerexception.message)" - } catch { - throw - } - if(!$str) { return $null } - $str | convertfrom-json + $str = $null + try { + $str = (new-object net.webclient).downloadstring($url) + } catch [system.management.automation.methodinvocationexception] { + warn "error: $($_.exception.innerexception.message)" + } catch { + throw + } + if(!$str) { return $null } + $str | convertfrom-json } function manifest($app, $bucket, $url) { - if($url) { return url_manifest $url } - parse_json (manifest_path $app $bucket) + if($url) { return url_manifest $url } + parse_json (manifest_path $app $bucket) } function save_installed_manifest($app, $bucket, $dir, $url) { - if($url) { (new-object net.webclient).downloadstring($url) > "$dir\manifest.json" } - else { cp (manifest_path $app $bucket) "$dir\manifest.json" } + if($url) { (new-object net.webclient).downloadstring($url) > "$dir\manifest.json" } + else { cp (manifest_path $app $bucket) "$dir\manifest.json" } } function installed_manifest($app, $version, $global) { - parse_json "$(versiondir $app $version $global)\manifest.json" + parse_json "$(versiondir $app $version $global)\manifest.json" } function save_install_info($info, $dir) { - $nulls = $info.keys | ? { $info[$_] -eq $null } - $nulls | % { $info.remove($_) } # strip null-valued + $nulls = $info.keys | ? { $info[$_] -eq $null } + $nulls | % { $info.remove($_) } # strip null-valued - $info | convertto-json | out-file "$dir\install.json" + $info | convertto-json | out-file "$dir\install.json" } function install_info($app, $version, $global) { - $path = "$(versiondir $app $version $global)\install.json" - if(!(test-path $path)) { return $null } - parse_json $path + $path = "$(versiondir $app $version $global)\install.json" + if(!(test-path $path)) { return $null } + parse_json $path } function default_architecture { - if([intptr]::size -eq 8) { return "64bit" } - "32bit" + if([intptr]::size -eq 8) { return "64bit" } + "32bit" } function arch_specific($prop, $manifest, $architecture) { - if($manifest.architecture) { - $val = $manifest.architecture.$architecture.$prop - if($val) { return $val } # else fallback to generic prop - } + if($manifest.architecture) { + $val = $manifest.architecture.$architecture.$prop + if($val) { return $val } # else fallback to generic prop + } - if($manifest.$prop) { return $manifest.$prop } + if($manifest.$prop) { return $manifest.$prop } } function url($manifest, $arch) { arch_specific 'url' $manifest $arch } diff --git a/lib/versions.ps1 b/lib/versions.ps1 index 0f66492edf..1fe556f6fa 100644 --- a/lib/versions.ps1 +++ b/lib/versions.ps1 @@ -1,53 +1,53 @@ # versions function latest_version($app, $bucket, $url) { - (manifest $app $bucket $url).version + (manifest $app $bucket $url).version } function current_version($app, $global) { - @(versions $app $global)[-1] + @(versions $app $global)[-1] } function versions($app, $global) { - $appdir = appdir $app $global - if(!(test-path $appdir)) { return @() } + $appdir = appdir $app $global + if(!(test-path $appdir)) { return @() } - sort_versions (gci $appdir -dir | % { $_.name }) + sort_versions (gci $appdir -dir | % { $_.name }) } function version($ver) { - $ver.split('.') | % { - $num = $_ -as [int] - if($num) { $num } else { $_ } - } + $ver.split('.') | % { + $num = $_ -as [int] + if($num) { $num } else { $_ } + } } function compare_versions($a, $b) { - $ver_a = @(version $a) - $ver_b = @(version $b) - - for($i=0;$i -lt $ver_a.length;$i++) { - if($i -gt $ver_b.length) { return 1; } - - # don't try to compare int to string - if($ver_b[$i] -is [string] -and $ver_a[$i] -isnot [string]) { - $ver_a[$i] = "$($ver_a[$i])" - } - - if($ver_a[$i] -gt $ver_b[$i]) { return 1; } - if($ver_a[$i] -lt $ver_b[$i]) { return -1; } - } - if($ver_b.length -gt $ver_a.length) { return -1 } - return 0 + $ver_a = @(version $a) + $ver_b = @(version $b) + + for($i=0;$i -lt $ver_a.length;$i++) { + if($i -gt $ver_b.length) { return 1; } + + # don't try to compare int to string + if($ver_b[$i] -is [string] -and $ver_a[$i] -isnot [string]) { + $ver_a[$i] = "$($ver_a[$i])" + } + + if($ver_a[$i] -gt $ver_b[$i]) { return 1; } + if($ver_a[$i] -lt $ver_b[$i]) { return -1; } + } + if($ver_b.length -gt $ver_a.length) { return -1 } + return 0 } function qsort($ary, $fn) { - if($ary -eq $null) { return @() } - if(!($ary -is [array])) { return @($ary) } + if($ary -eq $null) { return @() } + if(!($ary -is [array])) { return @($ary) } - $pivot = $ary[0] - $rem = $ary[1..($ary.length-1)] + $pivot = $ary[0] + $rem = $ary[1..($ary.length-1)] - $lesser = qsort ($rem | where { (& $fn $_ $pivot) -lt 0 }) $fn + $lesser = qsort ($rem | where { (& $fn $_ $pivot) -lt 0 }) $fn - $greater = qsort ($rem | where { (& $fn $_ $pivot) -ge 0 }) $fn + $greater = qsort ($rem | where { (& $fn $_ $pivot) -ge 0 }) $fn - return @() + $lesser + @($pivot) + $greater + return @() + $lesser + @($pivot) + $greater } -function sort_versions($versions) { qsort $versions compare_versions } \ No newline at end of file +function sort_versions($versions) { qsort $versions compare_versions } diff --git a/libexec/scoop-alias.ps1 b/libexec/scoop-alias.ps1 index 3b4a2ad3ae..a59ea7def5 100644 --- a/libexec/scoop-alias.ps1 +++ b/libexec/scoop-alias.ps1 @@ -3,7 +3,7 @@ # Help: Add, remove or list Scoop aliases # # Aliases are custom Scoop subcommands that can be created to make common tasks -# easier. +# easier. # # To add an Alias: # scoop alias add @@ -44,7 +44,7 @@ function add_alias($name, $command) { # generate script $shimdir = shimdir $false - $script = + $script = @" # Summary: $description $command @@ -72,7 +72,7 @@ function rm_alias($name) { function list_aliases { $aliases = @{} - (get_config $script:config_alias).getenumerator() |% { + (get_config $script:config_alias).getenumerator() |% { $summary = summary (gc (command_path $_.name) -raw) if(!($summary)) { $summary = '' } $aliases.add("$($_.name) ", $summary) @@ -86,4 +86,4 @@ switch($opt) { "rm" { rm_alias $name } "list" { list_aliases } default { my_usage; exit 1 } -} \ No newline at end of file +} diff --git a/libexec/scoop-bucket.ps1 b/libexec/scoop-bucket.ps1 index 7c21ca31ec..22e401e0d4 100644 --- a/libexec/scoop-bucket.ps1 +++ b/libexec/scoop-bucket.ps1 @@ -26,52 +26,52 @@ $usage_add = "usage: scoop bucket add []" $usage_rm = "usage: scoop bucket rm " function add_bucket($name, $repo) { - if(!$name) { " missing"; $usage_add; exit 1 } - if(!$repo) { - $repo = known_bucket_repo $name - if(!$repo) { "unknown bucket '$name': try specifying "; $usage_add; exit 1 } - } + if(!$name) { " missing"; $usage_add; exit 1 } + if(!$repo) { + $repo = known_bucket_repo $name + if(!$repo) { "unknown bucket '$name': try specifying "; $usage_add; exit 1 } + } - $git = try { gcm 'git' -ea stop } catch { $null } - if(!$git) { - abort "git is required for buckets. run 'scoop install git'." - } + $git = try { gcm 'git' -ea stop } catch { $null } + if(!$git) { + abort "git is required for buckets. run 'scoop install git'." + } - $dir = bucketdir $name - if(test-path $dir) { - abort "'$name' bucket already exists. use 'scoop bucket rm $name' to remove it." - } + $dir = bucketdir $name + if(test-path $dir) { + abort "'$name' bucket already exists. use 'scoop bucket rm $name' to remove it." + } - write-host 'checking repo...' -nonewline - git ls-remote $repo 2>&1 > $null - if($lastexitcode -ne 0) { - abort "'$repo' doesn't look like a valid git repository" - } - write-host 'ok' + write-host 'checking repo...' -nonewline + git ls-remote $repo 2>&1 > $null + if($lastexitcode -ne 0) { + abort "'$repo' doesn't look like a valid git repository" + } + write-host 'ok' - ensure $bucketsdir > $null - $dir = ensure $dir - git clone "$repo" "$dir" - success "$name bucket was added successfully" + ensure $bucketsdir > $null + $dir = ensure $dir + git clone "$repo" "$dir" + success "$name bucket was added successfully" } function rm_bucket($name) { - if(!$name) { " missing"; $usage_rm; exit 1 } - $dir = bucketdir $name - if(!(test-path $dir)) { - abort "'$name' bucket not found" - } + if(!$name) { " missing"; $usage_rm; exit 1 } + $dir = bucketdir $name + if(!(test-path $dir)) { + abort "'$name' bucket not found" + } - rm $dir -r -force -ea stop + rm $dir -r -force -ea stop } function list_buckets { - buckets + buckets } switch($cmd) { - "add" { add_bucket $name $repo } - "rm" { rm_bucket $name } - "list" { list_buckets } - default { "scoop bucket: cmd '$cmd' not supported"; my_usage; exit 1 } -} \ No newline at end of file + "add" { add_bucket $name $repo } + "rm" { rm_bucket $name } + "list" { list_buckets } + default { "scoop bucket: cmd '$cmd' not supported"; my_usage; exit 1 } +} diff --git a/libexec/scoop-cache.ps1 b/libexec/scoop-cache.ps1 index c534e8a901..9cb789d22e 100644 --- a/libexec/scoop-cache.ps1 +++ b/libexec/scoop-cache.ps1 @@ -14,48 +14,48 @@ param($cmd, $app) reset_aliases function cacheinfo($file) { - $app, $version, $url = $file.name -split '#' - $size = filesize $file.length - return new-object psobject -prop @{ app=$app; version=$version; url=$url; size=$size } + $app, $version, $url = $file.name -split '#' + $size = filesize $file.length + return new-object psobject -prop @{ app=$app; version=$version; url=$url; size=$size } } function filesize($length) { - $gb = [math]::pow(2, 30) - $mb = [math]::pow(2, 20) - $kb = [math]::pow(2, 10) - - if($length -gt $gb) { - "{0:n1} GB" -f ($length / $gb) - } elseif($length -gt $mb) { - "{0:n1} MB" -f ($length / $mb) - } elseif($length -gt $kb) { - "{0:n1} KB" -f ($length / $kb) - } else { - "$($length) B" - } + $gb = [math]::pow(2, 30) + $mb = [math]::pow(2, 20) + $kb = [math]::pow(2, 10) + + if($length -gt $gb) { + "{0:n1} GB" -f ($length / $gb) + } elseif($length -gt $mb) { + "{0:n1} MB" -f ($length / $mb) + } elseif($length -gt $kb) { + "{0:n1} KB" -f ($length / $kb) + } else { + "$($length) B" + } } switch($cmd) { - 'rm' { - if(!$app) { 'ERROR: missing'; my_usage; exit 1 } - rm "$scoopdir\cache\$app#*" - } - 'show' { - $files = @(gci "$scoopdir\cache" | ? { $_.name -match "^$app" }) - $total_length = ($files | measure length -sum).sum - - $f_app = @{ expression={"$($_.app) ($($_.version))" }} - $f_url = @{ expression={$_.url};alignment='right'} - $f_size = @{ expression={$_.size}; alignment='right'} - - - $files | % { cacheinfo $_ } | ft $f_size, $f_app, $f_url -auto -hide - - "total: $($files.length) $(pluralize $files.length 'file' 'files'), $(filesize $total_length)" - } - default { - "cache '$cmd' not supported"; my_usage; exit 1 - } + 'rm' { + if(!$app) { 'ERROR: missing'; my_usage; exit 1 } + rm "$scoopdir\cache\$app#*" + } + 'show' { + $files = @(gci "$scoopdir\cache" | ? { $_.name -match "^$app" }) + $total_length = ($files | measure length -sum).sum + + $f_app = @{ expression={"$($_.app) ($($_.version))" }} + $f_url = @{ expression={$_.url};alignment='right'} + $f_size = @{ expression={$_.size}; alignment='right'} + + + $files | % { cacheinfo $_ } | ft $f_size, $f_app, $f_url -auto -hide + + "total: $($files.length) $(pluralize $files.length 'file' 'files'), $(filesize $total_length)" + } + default { + "cache '$cmd' not supported"; my_usage; exit 1 + } } -exit 0 \ No newline at end of file +exit 0 diff --git a/libexec/scoop-config.ps1 b/libexec/scoop-config.ps1 index d988e7daab..3cae6646a3 100644 --- a/libexec/scoop-config.ps1 +++ b/libexec/scoop-config.ps1 @@ -10,7 +10,7 @@ # # scoop config # -# To remove a configuration setting: +# To remove a configuration setting: # # scoop config rm # @@ -18,7 +18,7 @@ # -------- # # proxy: [username:password@]host:port -# +# # By default, Scoop will use the proxy settings from Internet Options, but with anonymous authentication. # # * To use the credentials for the current logged-in user, use 'currentuser' in place of username:password @@ -36,9 +36,9 @@ reset_aliases if(!$name) { my_usage; exit 1 } if($name -like 'rm') { - set_config $value $null + set_config $value $null } elseif($value) { - set_config $name $value + set_config $name $value } else { - get_config $name $value -} \ No newline at end of file + get_config $name $value +} diff --git a/libexec/scoop-create.ps1 b/libexec/scoop-create.ps1 index d9efc5689c..8f5c10b5a0 100644 --- a/libexec/scoop-create.ps1 +++ b/libexec/scoop-create.ps1 @@ -16,12 +16,12 @@ function create_manifest($url) { abort "Error: $url is not a valid URL" } - $name = choose_item $url_parts "App name" - $name = if ($name.Length -gt 0) { - $name - } - else { - file_name ($url_parts | select-object -last 1) + $name = choose_item $url_parts "App name" + $name = if ($name.Length -gt 0) { + $name + } + else { + file_name ($url_parts | select-object -last 1) } $manifest.version = choose_item $url_parts "Version" @@ -64,4 +64,4 @@ if (!$url) { } else { create_manifest $url -} \ No newline at end of file +} diff --git a/libexec/scoop-depends.ps1 b/libexec/scoop-depends.ps1 index 43d1651321..1cf4d6e8ab 100644 --- a/libexec/scoop-depends.ps1 +++ b/libexec/scoop-depends.ps1 @@ -21,5 +21,5 @@ $architecture = ensure_architecture ($opt.a + $opt.architecture) $deps = @(deps $app $architecture) if($deps) { - $deps[($deps.length - 1)..0] -} \ No newline at end of file + $deps[($deps.length - 1)..0] +} diff --git a/libexec/scoop-export.ps1 b/libexec/scoop-export.ps1 index ea29d3bc2e..0154c607e7 100644 --- a/libexec/scoop-export.ps1 +++ b/libexec/scoop-export.ps1 @@ -19,7 +19,7 @@ $count = 0 # echo "{[" if($apps) { - $apps | sort { $_.name } | ? { !$query -or ($_.name -match $query) } | % { + $apps | sort { $_.name } | ? { !$query -or ($_.name -match $query) } | % { $app = $_.name $global = $_.global $ver = current_version $app $global @@ -37,7 +37,7 @@ if($apps) { "$app (v:$ver) $global_display" $count++ - } + } } # json diff --git a/libexec/scoop-help.ps1 b/libexec/scoop-help.ps1 index 34b91bfe3c..a8a467ea7a 100644 --- a/libexec/scoop-help.ps1 +++ b/libexec/scoop-help.ps1 @@ -9,41 +9,41 @@ param($cmd) reset_aliases function print_help($cmd) { - $file = gc (command_path $cmd) -raw + $file = gc (command_path $cmd) -raw - $usage = usage $file - $summary = summary $file - $help = help $file + $usage = usage $file + $summary = summary $file + $help = help $file - if($usage) { "$usage`n" } - if($help) { $help } + if($usage) { "$usage`n" } + if($help) { $help } } function print_summaries { - $commands = @{} + $commands = @{} - command_files | % { - $command = command_name $_ - $summary = summary (gc (command_path $command) -raw) - if(!($summary)) { $summary = '' } - $commands.add("$command ", $summary) # add padding - } + command_files | % { + $command = command_name $_ + $summary = summary (gc (command_path $command) -raw) + if(!($summary)) { $summary = '' } + $commands.add("$command ", $summary) # add padding + } - $commands.getenumerator() | sort name | ft -hidetablehead -autosize -wrap + $commands.getenumerator() | sort name | ft -hidetablehead -autosize -wrap } $commands = commands if(!($cmd)) { - "usage: scoop [] + "usage: scoop [] Some useful commands are:" - print_summaries - "type 'scoop help ' to get help for a specific command" + print_summaries + "type 'scoop help ' to get help for a specific command" } elseif($commands -contains $cmd) { - print_help $cmd + print_help $cmd } else { - "scoop help: no such command '$cmd'"; exit 1 + "scoop help: no such command '$cmd'"; exit 1 } exit 0 diff --git a/libexec/scoop-home.ps1 b/libexec/scoop-home.ps1 index 476d3867ce..0329d466a8 100644 --- a/libexec/scoop-home.ps1 +++ b/libexec/scoop-home.ps1 @@ -22,4 +22,4 @@ if($app) { } } else { my_usage } -exit 0 \ No newline at end of file +exit 0 diff --git a/libexec/scoop-install.ps1 b/libexec/scoop-install.ps1 index e893644971..583a1e1c69 100644 --- a/libexec/scoop-install.ps1 +++ b/libexec/scoop-install.ps1 @@ -29,16 +29,16 @@ reset_aliases function ensure_none_installed($apps, $global) { - $app = @(all_installed $apps $global)[0] # might return more than one; just get the first - if($app) { - $global_flag = $null; if($global){$global_flag = ' --global'} + $app = @(all_installed $apps $global)[0] # might return more than one; just get the first + if($app) { + $global_flag = $null; if($global){$global_flag = ' --global'} - $version = @(versions $app $global)[-1] - if(!(install_info $app $version $global)) { - abort "it looks like a previous installation of $app failed.`nrun 'scoop uninstall $app$global_flag' before retrying the install." - } - abort "$app ($version) is already installed.`nuse 'scoop update $app$global_flag' to install a new version." - } + $version = @(versions $app $global)[-1] + if(!(install_info $app $version $global)) { + abort "it looks like a previous installation of $app failed.`nrun 'scoop uninstall $app$global_flag' before retrying the install." + } + abort "$app ($version) is already installed.`nuse 'scoop update $app$global_flag' to install a new version." + } } $opt, $apps, $err = getopt $args 'ga:' 'global', 'arch=' @@ -50,7 +50,7 @@ $architecture = ensure_architecture $opt.a + $opt.arch if(!$apps) { 'ERROR: missing'; my_usage; exit 1 } if($global -and !(is_admin)) { - 'ERROR: you need admin rights to install global apps'; exit 1 + 'ERROR: you need admin rights to install global apps'; exit 1 } ensure_none_installed $apps $global diff --git a/libexec/scoop-list.ps1 b/libexec/scoop-list.ps1 index 9591ebf92f..39f48a22cf 100644 --- a/libexec/scoop-list.ps1 +++ b/libexec/scoop-list.ps1 @@ -16,17 +16,17 @@ $global = installed_apps $true | % { @{ name = $_; global = $true } } $apps = @($local) + @($global) if($apps) { - echo "Installed apps$(if($query) { `" matching '$query'`"}): + echo "Installed apps$(if($query) { `" matching '$query'`"}): " - $apps | sort { $_.name } | ? { !$query -or ($_.name -match $query) } | % { + $apps | sort { $_.name } | ? { !$query -or ($_.name -match $query) } | % { $app = $_.name $global = $_.global $ver = current_version $app $global $global_display = $null; if($global) { $global_display = '*global*'} - " $app ($ver) $global_display" - } - "" + " $app ($ver) $global_display" + } + "" exit 0 } else { "there aren't any apps installed" diff --git a/libexec/scoop-reset.ps1 b/libexec/scoop-reset.ps1 index 0b59393b46..d01b7a693e 100644 --- a/libexec/scoop-reset.ps1 +++ b/libexec/scoop-reset.ps1 @@ -25,4 +25,4 @@ $manifest = installed_manifest $app $version create_shims $manifest $dir $false env_add_path $manifest $dir -env_set $manifest $dir \ No newline at end of file +env_set $manifest $dir diff --git a/libexec/scoop-search.ps1 b/libexec/scoop-search.ps1 index 8f2c7e14ce..d1d9a251e6 100644 --- a/libexec/scoop-search.ps1 +++ b/libexec/scoop-search.ps1 @@ -1,7 +1,7 @@ # Usage: scoop search [query] # Summary: Search available apps # Help: Searches for apps that are available to install. -# +# # If used with [query], shows app names that match the query. # Without [query], shows all the available apps. param($query) @@ -13,46 +13,46 @@ param($query) reset_aliases function bin_match($manifest, $query) { - if(!$manifest.bin) { return $false } - foreach($bin in $manifest.bin) { - $exe, $alias, $args = $bin - $fname = split-path $exe -leaf -ea stop - - if((strip_ext $fname) -match $query) { return $fname } - if($alias -match $query) { return $alias } - } - $false + if(!$manifest.bin) { return $false } + foreach($bin in $manifest.bin) { + $exe, $alias, $args = $bin + $fname = split-path $exe -leaf -ea stop + + if((strip_ext $fname) -match $query) { return $fname } + if($alias -match $query) { return $alias } + } + $false } function search_bucket($bucket, $query) { - $apps = apps_in_bucket (bucketdir $bucket) | % { - @{ name = $_ } - } - - if($query) { $apps = $apps | ? { - if($_.name -match $query) { return $true } - $bin = bin_match (manifest $_.name $bucket) $query - if($bin) { - $_.bin = $bin; return $true; - } - } } - $apps | % { $_.version = (latest_version $_.name $bucket); $_ } + $apps = apps_in_bucket (bucketdir $bucket) | % { + @{ name = $_ } + } + + if($query) { $apps = $apps | ? { + if($_.name -match $query) { return $true } + $bin = bin_match (manifest $_.name $bucket) $query + if($bin) { + $_.bin = $bin; return $true; + } + } } + $apps | % { $_.version = (latest_version $_.name $bucket); $_ } } @($null) + @(buckets) | % { # $null is main bucket - $res = search_bucket $_ $query - if($res) { - $name = "$_" - if(!$_) { $name = "main" } - - "$name bucket:" - $res | % { - $item = " $($_.name) ($($_.version))" - if($_.bin) { $item += " --> includes '$($_.bin)'" } - $item - } - "" - } + $res = search_bucket $_ $query + if($res) { + $name = "$_" + if(!$_) { $name = "main" } + + "$name bucket:" + $res | % { + $item = " $($_.name) ($($_.version))" + if($_.bin) { $item += " --> includes '$($_.bin)'" } + $item + } + "" + } } -exit 0 \ No newline at end of file +exit 0 diff --git a/libexec/scoop-status.ps1 b/libexec/scoop-status.ps1 index 46242db1f4..141c2a299b 100644 --- a/libexec/scoop-status.ps1 +++ b/libexec/scoop-status.ps1 @@ -15,18 +15,18 @@ $currentdir = fullpath $(versiondir 'scoop' 'current') $needs_update = $false if(test-path "$currentdir\.git") { - pushd $currentdir - git fetch -q origin - $commits = $(git log "HEAD..origin/$(scoop config SCOOP_BRANCH)" --oneline) - if($commits) { $needs_update = $true } - popd + pushd $currentdir + git fetch -q origin + $commits = $(git log "HEAD..origin/$(scoop config SCOOP_BRANCH)" --oneline) + if($commits) { $needs_update = $true } + popd } else { - $needs_update = $true + $needs_update = $true } if($needs_update) { - "scoop is out of date. run scoop update to get the latest changes." + "scoop is out of date. run scoop update to get the latest changes." } else { "scoop is up-to-date."} @@ -36,69 +36,69 @@ $removed = @() $missing_deps = @() $true, $false | % { # local and global apps - $global = $_ - $dir = appsdir $global - if(!(test-path $dir)) { return } - - gci $dir | ? name -ne 'scoop' | % { - $app = $_.name - $version = current_version $app $global - if($version) { - $install_info = install_info $app $version $global - } - - if(!$install_info) { - $failed += @{ $app = $version }; return - } - - $manifest = manifest $app $install_info.bucket $install_info.url - if(!$manifest) { $removed += @{ $app = $version }; return } - - if((compare_versions $manifest.version $version) -gt 0) { - $old += @{ $app = @($version, $manifest.version) } - } - - $deps = @(runtime_deps $manifest) | ? { !(installed $_) } - if($deps) { - $missing_deps += ,(@($app) + @($deps)) - } - } + $global = $_ + $dir = appsdir $global + if(!(test-path $dir)) { return } + + gci $dir | ? name -ne 'scoop' | % { + $app = $_.name + $version = current_version $app $global + if($version) { + $install_info = install_info $app $version $global + } + + if(!$install_info) { + $failed += @{ $app = $version }; return + } + + $manifest = manifest $app $install_info.bucket $install_info.url + if(!$manifest) { $removed += @{ $app = $version }; return } + + if((compare_versions $manifest.version $version) -gt 0) { + $old += @{ $app = @($version, $manifest.version) } + } + + $deps = @(runtime_deps $manifest) | ? { !(installed $_) } + if($deps) { + $missing_deps += ,(@($app) + @($deps)) + } + } } if($old) { - "updates are available for:" - $old.keys | % { - $versions = $old.$_ - " $_`: $($versions[0]) -> $($versions[1])" - } + "updates are available for:" + $old.keys | % { + $versions = $old.$_ + " $_`: $($versions[0]) -> $($versions[1])" + } } if($removed) { - "these app manifests have been removed:" - $removed.keys | % { - " $_" - } + "these app manifests have been removed:" + $removed.keys | % { + " $_" + } } if($failed) { - "these apps failed to install:" - $failed.keys | % { - " $_" - } + "these apps failed to install:" + $failed.keys | % { + " $_" + } } if($missing_deps) { - "missing runtime dependencies:" - $missing_deps | % { - $app, $deps = $_ - " $app requires $([string]::join(',', $deps))" - } + "missing runtime dependencies:" + $missing_deps | % { + $app, $deps = $_ + " $app requires $([string]::join(',', $deps))" + } } if(!$old -and !$removed -and !$failed -and !$missing_deps) { - success "everything is ok!" + success "everything is ok!" } -exit 0 \ No newline at end of file +exit 0 diff --git a/libexec/scoop-uninstall.ps1 b/libexec/scoop-uninstall.ps1 index 29ca5e9d6e..06b25f907e 100644 --- a/libexec/scoop-uninstall.ps1 +++ b/libexec/scoop-uninstall.ps1 @@ -21,23 +21,23 @@ $global = $opt.g -or $opt.global if(!$app) { 'ERROR: missing'; my_usage; exit 1 } if(!(installed $app $global)) { - if($app -ne 'scoop') { - if(installed $app (!$global)) { - function wh($g) { if($g) { "globally" } else { "for your account" } } - write-host "$app isn't installed $(wh $global), but it is installed $(wh (!$global))" -f darkred - "try uninstalling $(if($global) { 'without' } else { 'with' }) the --global (or -g) flag instead" - exit 1 - } else { - abort "$app isn't installed" - } - } + if($app -ne 'scoop') { + if(installed $app (!$global)) { + function wh($g) { if($g) { "globally" } else { "for your account" } } + write-host "$app isn't installed $(wh $global), but it is installed $(wh (!$global))" -f darkred + "try uninstalling $(if($global) { 'without' } else { 'with' }) the --global (or -g) flag instead" + exit 1 + } else { + abort "$app isn't installed" + } + } } if($global -and !(is_admin)) { - 'ERROR: you need admin rights to uninstall global apps'; exit 1 + 'ERROR: you need admin rights to uninstall global apps'; exit 1 } if($app -eq 'scoop') { - & "$psscriptroot\..\bin\uninstall.ps1" $global; exit + & "$psscriptroot\..\bin\uninstall.ps1" $global; exit } $version = current_version $app $global @@ -45,9 +45,9 @@ $version = current_version $app $global $dir = versiondir $app $version $global try { - test-path $dir -ea stop | out-null + test-path $dir -ea stop | out-null } catch [unauthorizedaccessexception] { - abort "access denied: $dir. you might need to restart" + abort "access denied: $dir. you might need to restart" } $manifest = installed_manifest $app $version $global @@ -66,22 +66,22 @@ catch { abort "couldn't remove $(friendly_path $dir): it may be in use" } # remove older versions $old = @(versions $app $global) foreach($oldver in $old) { - "removing older version, $oldver" - $dir = versiondir $app $oldver $global - try { rm -r -force -ea stop $dir } - catch { abort "couldn't remove $(friendly_path $dir): it may be in use" } + "removing older version, $oldver" + $dir = versiondir $app $oldver $global + try { rm -r -force -ea stop $dir } + catch { abort "couldn't remove $(friendly_path $dir): it may be in use" } } if(@(versions $app).length -eq 0) { - $appdir = appdir $app $global - try { - # if last install failed, the directory seems to be locked and this - # will throw an error about the directory not existing - rm -r $appdir -ea stop -force - } catch { - if((test-path $appdir)) { throw } # only throw if the dir still exists - } + $appdir = appdir $app $global + try { + # if last install failed, the directory seems to be locked and this + # will throw an error about the directory not existing + rm -r $appdir -ea stop -force + } catch { + if((test-path $appdir)) { throw } # only throw if the dir still exists + } } success "$app was uninstalled" -exit 0 \ No newline at end of file +exit 0 diff --git a/libexec/scoop-update.ps1 b/libexec/scoop-update.ps1 index ccde504667..334458f9e4 100644 --- a/libexec/scoop-update.ps1 +++ b/libexec/scoop-update.ps1 @@ -6,10 +6,10 @@ # You can use '*' in place of to update all apps. # # Options: -# --global, -g update a globally installed app -# --force, -f force update even when there isn't a newer version -# --no-cache, -k don't use the download cache -# --quiet, -q hide extraneous messages +# --global, -g update a globally installed app +# --force, -f force update even when there isn't a newer version +# --no-cache, -k don't use the download cache +# --quiet, -q hide extraneous messages . "$psscriptroot\..\lib\core.ps1" . "$psscriptroot\..\lib\install.ps1" . "$psscriptroot\..\lib\decompress.ps1" @@ -30,160 +30,160 @@ $use_cache = !($opt.k -or $opt.'no-cache') $quiet = $opt.q -or $opt.quiet function update_scoop() { - # check for git - $git = try { gcm git -ea stop } catch { $null } - if(!$git) { abort "scoop uses git to update itself. run 'scoop install git'." } - - "updating scoop..." - $currentdir = fullpath $(versiondir 'scoop' 'current') - if(!(test-path "$currentdir\.git")) { - # load config - $repo = $(scoop config SCOOP_REPO) - if(!$repo) { - $repo = "http://github.com/lukesampson/scoop" - scoop config SCOOP_REPO "$repo" - } - - $branch = $(scoop config SCOOP_BRANCH) - if(!$branch) { - $branch = "master" - scoop config SCOOP_BRANCH "$branch" - } - - # remove non-git scoop - rm -r -force $currentdir -ea stop - - # get git scoop - git clone -q $repo --branch $branch --single-branch $currentdir - } - else { - pushd $currentdir - git pull -q - popd - } - - ensure_scoop_in_path - shim "$currentdir\bin\scoop.ps1" $false - - @(buckets) | % { - "updating $_ bucket..." - pushd (bucketdir $_) - git pull -q - popd - } - success 'scoop was updated successfully!' + # check for git + $git = try { gcm git -ea stop } catch { $null } + if(!$git) { abort "scoop uses git to update itself. run 'scoop install git'." } + + "updating scoop..." + $currentdir = fullpath $(versiondir 'scoop' 'current') + if(!(test-path "$currentdir\.git")) { + # load config + $repo = $(scoop config SCOOP_REPO) + if(!$repo) { + $repo = "http://github.com/lukesampson/scoop" + scoop config SCOOP_REPO "$repo" + } + + $branch = $(scoop config SCOOP_BRANCH) + if(!$branch) { + $branch = "master" + scoop config SCOOP_BRANCH "$branch" + } + + # remove non-git scoop + rm -r -force $currentdir -ea stop + + # get git scoop + git clone -q $repo --branch $branch --single-branch $currentdir + } + else { + pushd $currentdir + git pull -q + popd + } + + ensure_scoop_in_path + shim "$currentdir\bin\scoop.ps1" $false + + @(buckets) | % { + "updating $_ bucket..." + pushd (bucketdir $_) + git pull -q + popd + } + success 'scoop was updated successfully!' } function update($app, $global, $quiet = $false) { - $old_version = current_version $app $global - $old_manifest = installed_manifest $app $old_version $global - $install = install_info $app $old_version $global - $check_hash = $true - - # re-use architecture, bucket and url from first install - $architecture = $install.architecture - $bucket = $install.bucket - $url = $install.url - - # check dependencies - $deps = @(deps $app $architecture) | ? { !(installed $_) } - $deps | % { install_app $_ $architecture $global } - - $version = latest_version $app $bucket $url - $is_nightly = $version -eq 'nightly' - if($is_nightly) { - $version = nightly_version $(get-date) $quiet - $check_hash = $false - } - - if(!$force -and ($old_version -eq $version)) { - if (!$quiet) { - warn "the latest version of $app ($version) is already installed." - "run 'scoop update' to check for new versions." - } - return - } - if(!$version) { abort "no manifest available for $app" } # installed from a custom bucket/no longer supported - - $manifest = manifest $app $bucket $url - - "updating $app ($old_version -> $version)" - - $dir = versiondir $app $old_version $global - - "uninstalling $app ($old_version)" - run_uninstaller $old_manifest $architecture $dir - rm_shims $old_manifest $global - env_rm_path $old_manifest $dir $global - env_rm $old_manifest $global - # note: keep the old dir in case it contains user files - - "installing $app ($version)" - $dir = ensure (versiondir $app $version $global) - - # save info for uninstall - save_installed_manifest $app $bucket $dir $url - save_install_info @{ 'architecture' = $architecture; 'url' = $url; 'bucket' = $bucket } $dir - - $fname = dl_urls $app $version $manifest $architecture $dir $use_cache $check_hash - unpack_inno $fname $manifest $dir - pre_install $manifest - run_installer $fname $manifest $architecture $dir - ensure_install_dir_not_in_path $dir - create_shims $manifest $dir $global - env_add_path $manifest $dir $global - env_set $manifest $dir $global - post_install $manifest - - success "$app was updated from $old_version to $version" - - show_notes $manifest + $old_version = current_version $app $global + $old_manifest = installed_manifest $app $old_version $global + $install = install_info $app $old_version $global + $check_hash = $true + + # re-use architecture, bucket and url from first install + $architecture = $install.architecture + $bucket = $install.bucket + $url = $install.url + + # check dependencies + $deps = @(deps $app $architecture) | ? { !(installed $_) } + $deps | % { install_app $_ $architecture $global } + + $version = latest_version $app $bucket $url + $is_nightly = $version -eq 'nightly' + if($is_nightly) { + $version = nightly_version $(get-date) $quiet + $check_hash = $false + } + + if(!$force -and ($old_version -eq $version)) { + if (!$quiet) { + warn "the latest version of $app ($version) is already installed." + "run 'scoop update' to check for new versions." + } + return + } + if(!$version) { abort "no manifest available for $app" } # installed from a custom bucket/no longer supported + + $manifest = manifest $app $bucket $url + + "updating $app ($old_version -> $version)" + + $dir = versiondir $app $old_version $global + + "uninstalling $app ($old_version)" + run_uninstaller $old_manifest $architecture $dir + rm_shims $old_manifest $global + env_rm_path $old_manifest $dir $global + env_rm $old_manifest $global + # note: keep the old dir in case it contains user files + + "installing $app ($version)" + $dir = ensure (versiondir $app $version $global) + + # save info for uninstall + save_installed_manifest $app $bucket $dir $url + save_install_info @{ 'architecture' = $architecture; 'url' = $url; 'bucket' = $bucket } $dir + + $fname = dl_urls $app $version $manifest $architecture $dir $use_cache $check_hash + unpack_inno $fname $manifest $dir + pre_install $manifest + run_installer $fname $manifest $architecture $dir + ensure_install_dir_not_in_path $dir + create_shims $manifest $dir $global + env_add_path $manifest $dir $global + env_set $manifest $dir $global + post_install $manifest + + success "$app was updated from $old_version to $version" + + show_notes $manifest } function ensure_all_installed($apps, $global) { - $app = $apps | ? { !(installed $_ $global) } | select -first 1 # just get the first one that's not installed - if($app) { - if(installed $app (!$global)) { - function wh($g) { if($g) { "globally" } else { "for your account" } } - write-host "$app isn't installed $(wh $global), but it is installed $(wh (!$global))" -f darkred - "try updating $(if($global) { 'without' } else { 'with' }) the --global (or -g) flag instead" - exit 1 - } else { - abort "$app isn't installed" - } - } + $app = $apps | ? { !(installed $_ $global) } | select -first 1 # just get the first one that's not installed + if($app) { + if(installed $app (!$global)) { + function wh($g) { if($g) { "globally" } else { "for your account" } } + write-host "$app isn't installed $(wh $global), but it is installed $(wh (!$global))" -f darkred + "try updating $(if($global) { 'without' } else { 'with' }) the --global (or -g) flag instead" + exit 1 + } else { + abort "$app isn't installed" + } + } } # convert list of apps to list of ($app, $global) tuples function applist($apps, $global) { - return ,@($apps |% { ,@($_, $global) }) + return ,@($apps |% { ,@($_, $global) }) } if(!$apps) { - if($global) { - "scoop update: --global is invalid when not specified"; exit 1 - } - if (!$use_cache) { - "scoop update: --no-cache is invalid when not specified"; exit 1 - } - update_scoop + if($global) { + "scoop update: --global is invalid when not specified"; exit 1 + } + if (!$use_cache) { + "scoop update: --no-cache is invalid when not specified"; exit 1 + } + update_scoop } else { - if($global -and !(is_admin)) { - 'ERROR: you need admin rights to update global apps'; exit 1 - } - - if($apps -eq '*') { - $apps = applist (installed_apps $false) $false - if($global) { - $apps += applist (installed_apps $true) $true - } - } else { - ensure_all_installed $apps $global - $apps = applist $apps $global - } - - # $apps is now a list of ($app, $global) tuples - $apps | % { update @_ $quiet } + if($global -and !(is_admin)) { + 'ERROR: you need admin rights to update global apps'; exit 1 + } + + if($apps -eq '*') { + $apps = applist (installed_apps $false) $false + if($global) { + $apps += applist (installed_apps $true) $true + } + } else { + ensure_all_installed $apps $global + $apps = applist $apps $global + } + + # $apps is now a list of ($app, $global) tuples + $apps | % { update @_ $quiet } } -exit 0 \ No newline at end of file +exit 0 diff --git a/libexec/scoop-which.ps1 b/libexec/scoop-which.ps1 index c7677fa2df..bf52acdaa4 100644 --- a/libexec/scoop-which.ps1 +++ b/libexec/scoop-which.ps1 @@ -17,21 +17,21 @@ $usershims = "$(resolve-path $(shimdir $false))" $globalshims = fullpath (shimdir $true) # don't resolve: may not exist if($path -like "$usershims*" -or $path -like "$globalshims*") { - $shimtext = gc $path + $shimtext = gc $path $exepath = ($shimtext |? { $_.startswith('$path') }).split(' ') ` - | select -Last 1 | iex + | select -Last 1 | iex - if (![system.io.path]::ispathrooted($exepath)) { - $exepath = resolve-path (join-path (split-path $path) $exepath) - } + if (![system.io.path]::ispathrooted($exepath)) { + $exepath = resolve-path (join-path (split-path $path) $exepath) + } - friendly_path $exepath + friendly_path $exepath } elseif($gcm.commandtype -eq 'Alias') { - scoop which $gcm.resolvedcommandname + scoop which $gcm.resolvedcommandname } else { - [console]::error.writeline("not a scoop shim") - $path - exit 2 + [console]::error.writeline("not a scoop shim") + $path + exit 2 } exit 0 diff --git a/scoop.sublime-project b/scoop.sublime-project index 3d7bef9330..f41c68ec72 100644 --- a/scoop.sublime-project +++ b/scoop.sublime-project @@ -1,14 +1,14 @@ { - "folders": - [ - { - "path": ".", - "file_exclude_patterns": [ "*.git*", "*.sublime-*"], - "folder_exclude_patterns": [ "tmp" ] - } - ], - "settings": { - "default_line_ending": "windows", - "tab_size": 4 - } + "folders": + [ + { + "path": ".", + "file_exclude_patterns": [ "*.git*", "*.sublime-*"], + "folder_exclude_patterns": [ "tmp" ] + } + ], + "settings": { + "default_line_ending": "windows", + "tab_size": 4 + } } diff --git a/supporting/shimexe/build.ps1 b/supporting/shimexe/build.ps1 index ef8bfb1e1f..07d2062b55 100644 --- a/supporting/shimexe/build.ps1 +++ b/supporting/shimexe/build.ps1 @@ -2,4 +2,4 @@ $fwdir = gci C:\Windows\Microsoft.NET\Framework\ -dir | sort -desc | select -fir pushd $psscriptroot & "$($fwdir.fullname)\csc.exe" /nologo shim.cs -popd \ No newline at end of file +popd diff --git a/supporting/shimexe/shim.cs b/supporting/shimexe/shim.cs index cf23a6d972..e2231c96f1 100644 --- a/supporting/shimexe/shim.cs +++ b/supporting/shimexe/shim.cs @@ -6,144 +6,144 @@ using System.Reflection; using System.Text.RegularExpressions; using System.Threading.Tasks; -using System.Runtime.InteropServices; +using System.Runtime.InteropServices; namespace shim { - - class Program { - [DllImport("kernel32.dll", SetLastError=true)] - static extern bool CreateProcess(string lpApplicationName, - string lpCommandLine, IntPtr lpProcessAttributes, - IntPtr lpThreadAttributes, bool bInheritHandles, - uint dwCreationFlags, IntPtr lpEnvironment, string lpCurrentDirectory, - [In] ref STARTUPINFO lpStartupInfo, - out PROCESS_INFORMATION lpProcessInformation); - - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] - struct STARTUPINFO { - public Int32 cb; - public string lpReserved; - public string lpDesktop; - public string lpTitle; - public Int32 dwX; - public Int32 dwY; - public Int32 dwXSize; - public Int32 dwYSize; - public Int32 dwXCountChars; - public Int32 dwYCountChars; - public Int32 dwFillAttribute; - public Int32 dwFlags; - public Int16 wShowWindow; - public Int16 cbReserved2; - public IntPtr lpReserved2; - public IntPtr hStdInput; - public IntPtr hStdOutput; - public IntPtr hStdError; - } - - [StructLayout(LayoutKind.Sequential)] - internal struct PROCESS_INFORMATION { - public IntPtr hProcess; - public IntPtr hThread; - public int dwProcessId; - public int dwThreadId; - } - - [DllImport("kernel32.dll", SetLastError=true)] - static extern UInt32 WaitForSingleObject(IntPtr hHandle, UInt32 dwMilliseconds); - const UInt32 INFINITE = 0xFFFFFFFF; - - [DllImport("kernel32.dll", SetLastError=true)] - [return: MarshalAs(UnmanagedType.Bool)] - static extern bool CloseHandle(IntPtr hObject); - - [DllImport("kernel32.dll", SetLastError = true)] - [return: MarshalAs(UnmanagedType.Bool)] - static extern bool GetExitCodeProcess(IntPtr hProcess, out uint lpExitCode); - - static int Main(string[] args) { - var exe = Assembly.GetExecutingAssembly().Location; - var dir = Path.GetDirectoryName(exe); - var name = Path.GetFileNameWithoutExtension(exe); - - var configPath = Path.Combine(dir, name + ".shim"); - if(!File.Exists(configPath)) { - Console.Error.WriteLine("Couldn't find " + Path.GetFileName(configPath) + " in " + dir); - return 1; - } - - var config = Config(configPath); - var path = Get(config, "path"); - var add_args = Get(config, "args"); - - var si = new STARTUPINFO(); - var pi = new PROCESS_INFORMATION(); - - // create command line - var cmd_args = add_args ?? ""; - var pass_args = GetArgs(Environment.CommandLine); - if(!string.IsNullOrEmpty(pass_args)) { - if(!string.IsNullOrEmpty(cmd_args)) cmd_args += " "; - cmd_args += pass_args; - } - if(!string.IsNullOrEmpty(cmd_args)) cmd_args = " " + cmd_args; - var cmd = "\"" + path + "\"" + cmd_args; - - if(!CreateProcess(null, cmd, IntPtr.Zero, IntPtr.Zero, - bInheritHandles: true, - dwCreationFlags: 0, - lpEnvironment: IntPtr.Zero, // inherit parent - lpCurrentDirectory: null, // inherit parent - lpStartupInfo: ref si, - lpProcessInformation: out pi)) { - - return Marshal.GetLastWin32Error(); - } - - WaitForSingleObject(pi.hProcess, INFINITE); - - uint exit_code = 0; - GetExitCodeProcess(pi.hProcess, out exit_code); - - // Close process and thread handles. - CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); - - return (int)exit_code; - } - - // now uses GetArgs instead - static string Serialize(string[] args) { - return string.Join(" ", args.Select(a => a.Contains(' ') ? '"' + a + '"' : a)); - } - - // strips the program name from the command line, returns just the arguments - static string GetArgs(string cmdLine) { - if(cmdLine.StartsWith("\"")) { - var endQuote = cmdLine.IndexOf("\" ", 1); - if(endQuote < 0) return ""; - return cmdLine.Substring(endQuote + 1); - } - var space = cmdLine.IndexOf(' '); - if(space < 0 || space == cmdLine.Length - 1) return ""; - return cmdLine.Substring(space + 1); - } - - static string Get(Dictionary dic, string key) { - string value = null; - dic.TryGetValue(key, out value); - return value; - } - - static Dictionary Config(string path) { - var config = new Dictionary(StringComparer.OrdinalIgnoreCase); - foreach(var line in File.ReadAllLines(path)) { - var m = Regex.Match(line, @"([^=]+)=(.*)"); - if(m.Success) { - config[m.Groups[1].Value.Trim()] = m.Groups[2].Value.Trim(); - } - } - return config; - } - } + + class Program { + [DllImport("kernel32.dll", SetLastError=true)] + static extern bool CreateProcess(string lpApplicationName, + string lpCommandLine, IntPtr lpProcessAttributes, + IntPtr lpThreadAttributes, bool bInheritHandles, + uint dwCreationFlags, IntPtr lpEnvironment, string lpCurrentDirectory, + [In] ref STARTUPINFO lpStartupInfo, + out PROCESS_INFORMATION lpProcessInformation); + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + struct STARTUPINFO { + public Int32 cb; + public string lpReserved; + public string lpDesktop; + public string lpTitle; + public Int32 dwX; + public Int32 dwY; + public Int32 dwXSize; + public Int32 dwYSize; + public Int32 dwXCountChars; + public Int32 dwYCountChars; + public Int32 dwFillAttribute; + public Int32 dwFlags; + public Int16 wShowWindow; + public Int16 cbReserved2; + public IntPtr lpReserved2; + public IntPtr hStdInput; + public IntPtr hStdOutput; + public IntPtr hStdError; + } + + [StructLayout(LayoutKind.Sequential)] + internal struct PROCESS_INFORMATION { + public IntPtr hProcess; + public IntPtr hThread; + public int dwProcessId; + public int dwThreadId; + } + + [DllImport("kernel32.dll", SetLastError=true)] + static extern UInt32 WaitForSingleObject(IntPtr hHandle, UInt32 dwMilliseconds); + const UInt32 INFINITE = 0xFFFFFFFF; + + [DllImport("kernel32.dll", SetLastError=true)] + [return: MarshalAs(UnmanagedType.Bool)] + static extern bool CloseHandle(IntPtr hObject); + + [DllImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + static extern bool GetExitCodeProcess(IntPtr hProcess, out uint lpExitCode); + + static int Main(string[] args) { + var exe = Assembly.GetExecutingAssembly().Location; + var dir = Path.GetDirectoryName(exe); + var name = Path.GetFileNameWithoutExtension(exe); + + var configPath = Path.Combine(dir, name + ".shim"); + if(!File.Exists(configPath)) { + Console.Error.WriteLine("Couldn't find " + Path.GetFileName(configPath) + " in " + dir); + return 1; + } + + var config = Config(configPath); + var path = Get(config, "path"); + var add_args = Get(config, "args"); + + var si = new STARTUPINFO(); + var pi = new PROCESS_INFORMATION(); + + // create command line + var cmd_args = add_args ?? ""; + var pass_args = GetArgs(Environment.CommandLine); + if(!string.IsNullOrEmpty(pass_args)) { + if(!string.IsNullOrEmpty(cmd_args)) cmd_args += " "; + cmd_args += pass_args; + } + if(!string.IsNullOrEmpty(cmd_args)) cmd_args = " " + cmd_args; + var cmd = "\"" + path + "\"" + cmd_args; + + if(!CreateProcess(null, cmd, IntPtr.Zero, IntPtr.Zero, + bInheritHandles: true, + dwCreationFlags: 0, + lpEnvironment: IntPtr.Zero, // inherit parent + lpCurrentDirectory: null, // inherit parent + lpStartupInfo: ref si, + lpProcessInformation: out pi)) { + + return Marshal.GetLastWin32Error(); + } + + WaitForSingleObject(pi.hProcess, INFINITE); + + uint exit_code = 0; + GetExitCodeProcess(pi.hProcess, out exit_code); + + // Close process and thread handles. + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); + + return (int)exit_code; + } + + // now uses GetArgs instead + static string Serialize(string[] args) { + return string.Join(" ", args.Select(a => a.Contains(' ') ? '"' + a + '"' : a)); + } + + // strips the program name from the command line, returns just the arguments + static string GetArgs(string cmdLine) { + if(cmdLine.StartsWith("\"")) { + var endQuote = cmdLine.IndexOf("\" ", 1); + if(endQuote < 0) return ""; + return cmdLine.Substring(endQuote + 1); + } + var space = cmdLine.IndexOf(' '); + if(space < 0 || space == cmdLine.Length - 1) return ""; + return cmdLine.Substring(space + 1); + } + + static string Get(Dictionary dic, string key) { + string value = null; + dic.TryGetValue(key, out value); + return value; + } + + static Dictionary Config(string path) { + var config = new Dictionary(StringComparer.OrdinalIgnoreCase); + foreach(var line in File.ReadAllLines(path)) { + var m = Regex.Match(line, @"([^=]+)=(.*)"); + if(m.Success) { + config[m.Groups[1].Value.Trim()] = m.Groups[2].Value.Trim(); + } + } + return config; + } + } } diff --git a/test/Scoop-Alias.Tests.ps1 b/test/Scoop-Alias.Tests.ps1 index f70cfcd9ae..9dafc334e7 100644 --- a/test/Scoop-Alias.Tests.ps1 +++ b/test/Scoop-Alias.Tests.ps1 @@ -56,4 +56,4 @@ describe "rm_alias" { afterall { rm "test\fixtures\shim\scoop-rm.ps1" -ea ignore } -} \ No newline at end of file +} diff --git a/test/Scoop-Config.Tests.ps1 b/test/Scoop-Config.Tests.ps1 index f12a6f482d..967aaaddca 100644 --- a/test/Scoop-Config.Tests.ps1 +++ b/test/Scoop-Config.Tests.ps1 @@ -14,4 +14,4 @@ describe "hashtable" { $ht.two[2] | should beexactly 2 $ht.three.four | should beexactly 4 } -} \ No newline at end of file +} diff --git a/test/Scoop-GetOpts.Tests.ps1 b/test/Scoop-GetOpts.Tests.ps1 index cd5584350e..d53d591803 100644 --- a/test/Scoop-GetOpts.Tests.ps1 +++ b/test/Scoop-GetOpts.Tests.ps1 @@ -2,70 +2,70 @@ . "$psscriptroot\..\lib\getopt.ps1" describe "getopt" { - it 'handle short option with required argument missing' { - $null, $null, $err = getopt '-x' 'x:' '' - $err | should be 'option -x requires an argument' + it 'handle short option with required argument missing' { + $null, $null, $err = getopt '-x' 'x:' '' + $err | should be 'option -x requires an argument' - $null, $null, $err = getopt '-xy' 'x:y' '' - $err | should be 'option -x requires an argument' - } + $null, $null, $err = getopt '-xy' 'x:y' '' + $err | should be 'option -x requires an argument' + } - it 'handle long option with required argument missing' { - $null, $null, $err = getopt '--arb' '' 'arb=' - $err | should be 'option --arb requires an argument' - } + it 'handle long option with required argument missing' { + $null, $null, $err = getopt '--arb' '' 'arb=' + $err | should be 'option --arb requires an argument' + } - it 'handle unrecognized short option' { - $null, $null, $err = getopt '-az' 'a' '' - $err | should be 'option -z not recognized' - } + it 'handle unrecognized short option' { + $null, $null, $err = getopt '-az' 'a' '' + $err | should be 'option -z not recognized' + } - it 'handle unrecognized long option' { - $null, $null, $err = getopt '--non-exist' '' '' - $err | should be 'option --non-exist not recognized' + it 'handle unrecognized long option' { + $null, $null, $err = getopt '--non-exist' '' '' + $err | should be 'option --non-exist not recognized' - $null, $null, $err = getopt '--global','--another' 'abc:de:' 'global','one' - $err | should be 'option --another not recognized' - } + $null, $null, $err = getopt '--global','--another' 'abc:de:' 'global','one' + $err | should be 'option --another not recognized' + } - it 'remaining args returned' { - $opt, $rem, $err = getopt '-g','rem' 'g' '' - $err | should be $null - $opt.g | should be $true - $rem | should not be $null - $rem.length | should be 1 - $rem[0] | should be 'rem' - } + it 'remaining args returned' { + $opt, $rem, $err = getopt '-g','rem' 'g' '' + $err | should be $null + $opt.g | should be $true + $rem | should not be $null + $rem.length | should be 1 + $rem[0] | should be 'rem' + } - it 'get a long flag and a short option with argument' { - $a = "--global -a 32bit test" -split ' ' - $opt, $rem, $err = getopt $a 'ga:' 'global','arch=' + it 'get a long flag and a short option with argument' { + $a = "--global -a 32bit test" -split ' ' + $opt, $rem, $err = getopt $a 'ga:' 'global','arch=' - $err | should be $null - $opt.global | should be $true - $opt.a | should be '32bit' - } + $err | should be $null + $opt.global | should be $true + $opt.a | should be '32bit' + } - it 'handles regex characters' { - $a = "-?" - { $opt, $rem, $err = getopt $a 'ga:' 'global' 'arch=' } | should not throw - { $null, $null, $null = getopt $a '?:' 'help' | should not throw } - } + it 'handles regex characters' { + $a = "-?" + { $opt, $rem, $err = getopt $a 'ga:' 'global' 'arch=' } | should not throw + { $null, $null, $null = getopt $a '?:' 'help' | should not throw } + } - it 'handles short option without required argument' { - $null, $null, $err = getopt '-x' 'x' '' - $err | should be $null - } + it 'handles short option without required argument' { + $null, $null, $err = getopt '-x' 'x' '' + $err | should be $null + } - it 'handles long option without required argument' { - $opt, $null, $err = getopt '--long-arg' '' 'long-arg' - $err | should be $null - $opt."long-arg" | should be $true - } + it 'handles long option without required argument' { + $opt, $null, $err = getopt '--long-arg' '' 'long-arg' + $err | should be $null + $opt."long-arg" | should be $true + } - it 'handles long option with required argument' { - $opt, $null, $err = getopt '--long-arg', 'test' '' 'long-arg=' - $err | should be $null - $opt."long-arg" | should be "test" - } + it 'handles long option with required argument' { + $opt, $null, $err = getopt '--long-arg', 'test' '' 'long-arg=' + $err | should be $null + $opt."long-arg" | should be "test" + } } diff --git a/test/Scoop-Install.Tests.ps1 b/test/Scoop-Install.Tests.ps1 index 91ba0058a8..d813f90fc2 100644 --- a/test/Scoop-Install.Tests.ps1 +++ b/test/Scoop-Install.Tests.ps1 @@ -3,41 +3,41 @@ . "$psscriptroot\..\lib\install.ps1" describe "travel_dir" { - beforeall { - $working_dir = setup_working "packages" - - # copy packages from 1.0 to 1.1 - $from = "$working_dir\1.0" - $to = "$working_dir\1.1" - - travel_dir $from $to - } - - it 'common directory remains unchanged in destination' { - "$to\common\version.txt" | should contain "version 1.1" - "$to\common with spaces\version.txt" | should contain "version 1.1" - } - - it 'common directory remains unchanged in source' { - "$from\common" | should exist - "$from\common with spaces" | should exist - "$from\common\version.txt" | should contain "version 1.0" - "$from\common with spaces\version.txt" | should contain "version 1.0" - } - - it 'old package present in new' { - "$to\package_a" | should exist - } - - it 'old package doesn''t remain in old' { - "$from\package_a" | should not exist - } - - it 'old subdir in common dir not copied' { - "$to\common\subdir" | should not exist - } - - it 'common file remains unchanged in destination' { - "$to\common_file.txt" | should contain "version 1.1" - } + beforeall { + $working_dir = setup_working "packages" + + # copy packages from 1.0 to 1.1 + $from = "$working_dir\1.0" + $to = "$working_dir\1.1" + + travel_dir $from $to + } + + it 'common directory remains unchanged in destination' { + "$to\common\version.txt" | should contain "version 1.1" + "$to\common with spaces\version.txt" | should contain "version 1.1" + } + + it 'common directory remains unchanged in source' { + "$from\common" | should exist + "$from\common with spaces" | should exist + "$from\common\version.txt" | should contain "version 1.0" + "$from\common with spaces\version.txt" | should contain "version 1.0" + } + + it 'old package present in new' { + "$to\package_a" | should exist + } + + it 'old package doesn''t remain in old' { + "$from\package_a" | should not exist + } + + it 'old subdir in common dir not copied' { + "$to\common\subdir" | should not exist + } + + it 'common file remains unchanged in destination' { + "$to\common_file.txt" | should contain "version 1.1" + } } diff --git a/test/Scoop-TestLib.ps1 b/test/Scoop-TestLib.ps1 index 820212feb8..f5bb5f3c9a 100644 --- a/test/Scoop-TestLib.ps1 +++ b/test/Scoop-TestLib.ps1 @@ -2,84 +2,84 @@ if(!$script:run) { $script:run = 0 } if(!$script:failed) { $script:failed = 0 } function filter_tests($arg) { - if(!$arg) { return } - $script:filter = $arg -join ' ' - write-host "filtering by '$filter'" + if(!$arg) { return } + $script:filter = $arg -join ' ' + write-host "filtering by '$filter'" } function test($desc, $assertions) { - if($filter -and $desc -notlike "*$filter*") { return } - $script:test = $desc - $script:run++ - try { - $assertions.invoke() - } catch { - script:fail $_.exception.innerexception.message - } - $script:test = $null + if($filter -and $desc -notlike "*$filter*") { return } + $script:test = $desc + $script:run++ + try { + $assertions.invoke() + } catch { + script:fail $_.exception.innerexception.message + } + $script:test = $null } function assert($x,$eq='__undefined',$ne='__undefined') { - if($args.length -gt 0) { - fail "unexpected arguments: $args" - } + if($args.length -gt 0) { + fail "unexpected arguments: $args" + } - if($eq -ne "__undefined") { - if($x -ne $eq) { fail "$(fmt $x) != $(fmt $eq)" } - } elseif ($ne -ne "__undefined") { - if($x -eq $ne) { fail "$(fmt $x) == $(fmt $ne)" } - } else { - if(!$x) { fail "$x" } - } + if($eq -ne "__undefined") { + if($x -ne $eq) { fail "$(fmt $x) != $(fmt $eq)" } + } elseif ($ne -ne "__undefined") { + if($x -eq $ne) { fail "$(fmt $x) == $(fmt $ne)" } + } else { + if(!$x) { fail "$x" } + } } function test_results { - $col = 'darkgreen' - $res = 'all passed' - if($script:failed -gt 0) { - $col = 'darkred' - $res = "$script:failed failed" - } + $col = 'darkgreen' + $res = 'all passed' + if($script:failed -gt 0) { + $col = 'darkred' + $res = "$script:failed failed" + } - write-host "ran $script:run tests, " -nonewline - write-host $res -f $col + write-host "ran $script:run tests, " -nonewline + write-host $res -f $col } function script:fail($msg) { - $script:failed++ - $invoked = (get-variable -scope 1 myinvocation).value + $script:failed++ + $invoked = (get-variable -scope 1 myinvocation).value - $script = split-path $invoked.scriptname -leaf - $line = $invoked.scriptlinenumber + $script = split-path $invoked.scriptname -leaf + $line = $invoked.scriptlinenumber - if($script:test) { $msg = "$script:test`r`n -> $msg" } + if($script:test) { $msg = "$script:test`r`n -> $msg" } - write-host "FAIL: $msg" -f darkred - write-host "$script line $line`:" - write-host (($invoked.positionmessage -split "`r`n")[1..2] -join "`r`n") + write-host "FAIL: $msg" -f darkred + write-host "$script line $line`:" + write-host (($invoked.positionmessage -split "`r`n")[1..2] -join "`r`n") } function script:fmt($var) { - if($var -eq $null) { return "`$null" } - if($var -is [string]) { return "'$var'" } - return $var + if($var -eq $null) { return "`$null" } + if($var -is [string]) { return "'$var'" } + return $var } # copies fixtures to a working directory function setup_working($name) { - $fixtures = "$psscriptroot\fixtures\$name" - if(!(test-path $fixtures)) { - write-host "couldn't find fixtures for $name at $fixtures" -f red - exit 1 - } + $fixtures = "$psscriptroot\fixtures\$name" + if(!(test-path $fixtures)) { + write-host "couldn't find fixtures for $name at $fixtures" -f red + exit 1 + } - # reset working dir - $working_dir = "$env:temp\ScoopTestFixtures\$name" - if(test-path $working_dir) { - rm -r -force $working_dir - } + # reset working dir + $working_dir = "$env:temp\ScoopTestFixtures\$name" + if(test-path $working_dir) { + rm -r -force $working_dir + } - # set up - cp $fixtures $working_dir -r + # set up + cp $fixtures $working_dir -r - return $working_dir -} \ No newline at end of file + return $working_dir +} diff --git a/test/fixtures/parse_json/wget.json b/test/fixtures/parse_json/wget.json index 052d7eb49b..6599f800dd 100644 --- a/test/fixtures/parse_json/wget.json +++ b/test/fixtures/parse_json/wget.json @@ -1,29 +1,29 @@ { - "homepage": "https://eternallybored.org/misc/wget/", - "license": "GPL3", - "version": "1.16.3" - "architecture": { - "64bit": { - "url": [ - "https://eternallybored.org/misc/wget/wget-1.16.3-win64.zip", - "http://curl.haxx.se/ca/cacert.pem" - ], - "hash": [ - "85e5393ffd473f7bec40b57637fd09b6808df86c06f846b6885b261a8acac8c5", - "" - ] - }, - "32bit": { - "url": [ - "https://eternallybored.org/misc/wget/wget-1.16.3-win32.zip", - "http://curl.haxx.se/ca/cacert.pem" - ], - "hash": [ - "2ef82af3070abfdaf3862baff0bffdcb3c91c8d75e2f02c8720d90adb9d7a8f7", - "" - ] - } - }, - "bin": "wget.exe", - "post_install": "\"ca_certificate=$dir\\cacert.pem\" | out-file $dir\\wget.ini -encoding default" -} \ No newline at end of file + "homepage": "https://eternallybored.org/misc/wget/", + "license": "GPL3", + "version": "1.16.3" + "architecture": { + "64bit": { + "url": [ + "https://eternallybored.org/misc/wget/wget-1.16.3-win64.zip", + "http://curl.haxx.se/ca/cacert.pem" + ], + "hash": [ + "85e5393ffd473f7bec40b57637fd09b6808df86c06f846b6885b261a8acac8c5", + "" + ] + }, + "32bit": { + "url": [ + "https://eternallybored.org/misc/wget/wget-1.16.3-win32.zip", + "http://curl.haxx.se/ca/cacert.pem" + ], + "hash": [ + "2ef82af3070abfdaf3862baff0bffdcb3c91c8d75e2f02c8720d90adb9d7a8f7", + "" + ] + } + }, + "bin": "wget.exe", + "post_install": "\"ca_certificate=$dir\\cacert.pem\" | out-file $dir\\wget.ini -encoding default" +}