github.com/NeowayLabs/nash@v0.2.2-0.20200127205349-a227041ffd50/hack/releaser.sh (about) 1 #!/usr/bin/env nash 2 3 if len($ARGS) != "2" { 4 print("usage: %s <version>\n\n", $ARGS[0]) 5 exit("1") 6 } 7 8 var version = $ARGS[1] 9 var supported_os = ("linux" "darwin" "windows") 10 var supported_arch = ("amd64") 11 12 # Guarantee passing tests at least on the host arch/os 13 make test 14 mkdir -p dist 15 16 fn prepare_execs(distfiles, os) { 17 if $os == "windows" { 18 var newfiles = () 19 20 for distfile in $distfiles { 21 var src = $distfile[0] 22 var dst = $distfile[1] 23 var newsrc = $src+".exe" 24 var newdst = $dst+".exe" 25 26 newfiles <= append($newfiles, ($newsrc $newdst)) 27 } 28 29 return $newfiles 30 } 31 if $os == "linux" { 32 for distfile in $distfiles { 33 strip $distfile[0] 34 } 35 } 36 37 return $distfiles 38 } 39 40 for os in $supported_os { 41 for arch in $supported_arch { 42 setenv GOOS = $os 43 setenv GOARCH = $arch 44 45 if $os == "linux" { 46 setenv CGO_ENABLED = "1" 47 } else { 48 setenv CGO_ENABLED = "0" 49 } 50 51 echo "building OS: "+$GOOS+" ARCH : "+$GOARCH 52 make build "version="+$version 53 54 var pkgdir <= mktemp -d 55 56 var bindir = $pkgdir+"/bin" 57 var stdlibdir = $pkgdir+"/stdlib" 58 59 mkdir -p $bindir 60 mkdir -p $stdlibdir 61 62 var nash_src = "./cmd/nash/nash" 63 var nash_dst = $bindir+"/nash" 64 var nashfmt_src = "./cmd/nashfmt/nashfmt" 65 var nashfmt_dst = $bindir+"/nashfmt" 66 var execfiles = ( 67 ($nash_src $nash_dst) 68 ($nashfmt_src $nashfmt_dst) 69 ) 70 71 var execfiles <= prepare_execs($execfiles, $os) 72 73 # TODO: Improve with glob, right now have only two packages =) 74 var distfiles <= append($execfiles, ("./stdlib/io.sh" $stdlibdir)) 75 76 distfiles <= append($distfiles, ("./stdlib/map.sh" $stdlibdir)) 77 78 for distfile in $distfiles { 79 var src = $distfile[0] 80 var dst = $distfile[1] 81 82 cp -pr $src $dst 83 } 84 85 var projectdir <= pwd 86 var distar <= format("%s/dist/nash-%s-%s-%s.tar.gz", $projectdir, $version, $os, $arch) 87 88 chdir($pkgdir) 89 90 var pkgraw <= ls 91 var pkgfiles <= split($pkgraw, "\n") 92 93 tar cvfz $distar $pkgfiles 94 95 chdir($projectdir) 96 } 97 }