github.com/xiaq/elvish@v0.12.0/buildall.sh (about)

     1  #!/bin/sh -e
     2  
     3  IFS=
     4  
     5  VERSION=`git describe --tags --always --dirty=-dirty`
     6  
     7  : ${BUILDER:=`id -un`@`hostname`}
     8  : ${VERSION_SUFFIX:=$VERSION}
     9  : ${BIN_DIR:=./bin}
    10  
    11  export GOOS GOARCH
    12  
    13  buildone() {
    14      GOOS=$1
    15      GOARCH=$2
    16      STEM=elvish-$GOOS-$GOARCH-$VERSION_SUFFIX
    17      if test $GOOS = windows; then
    18          BIN=$STEM.exe
    19          ARCHIVE=$STEM.zip
    20      else
    21          BIN=$STEM
    22          ARCHIVE=$STEM.tar.gz
    23      fi
    24  
    25      echo "Going to build $BIN"
    26      go build -o $BIN_DIR/$BIN -ldflags \
    27          "-X github.com/elves/elvish/buildinfo.Version=$VERSION \
    28           -X github.com/elves/elvish/buildinfo.GoRoot=`go env GOROOT` \
    29           -X github.com/elves/elvish/buildinfo.GoPath=`go env GOPATH`"
    30  
    31      (
    32      cd $BIN_DIR
    33      if test $GOOS = windows; then
    34          zip $ARCHIVE $BIN
    35      else
    36          tar cfz $ARCHIVE $BIN
    37      fi
    38      )
    39  
    40      echo "Built $BIN and archived $ARCHIVE"
    41  }
    42  
    43  build() {
    44      local os=$1 arch=
    45      shift
    46      for arch in $@; do
    47          buildone $os $arch
    48      done
    49  }
    50  
    51  build darwin  amd64
    52  build windows amd64 386
    53  build linux   amd64 386 arm64