github.com/ericwq/aprilsh@v0.0.0-20240517091432-958bc568daa0/frontend/server/build.sh (about) 1 #!/bin/sh 2 3 # 4 # Terminate the test if any command below does not complete successfully. 5 set -e 6 7 # 8 # prepare coverage directory 9 rm -rf coverage 10 mkdir -p coverage/unit 11 mkdir -p coverage/int 12 13 # selecting package for integration coverage test 14 PKGS="github.com/ericwq/aprilsh/frontend/server" 15 16 # prepare for ldflags 17 _module_name=$(head ../../go.mod | grep '^module' | awk '{print $2}') 18 _go_version=$(go version | grep 'version' | awk '{print $3}') 19 _git_tag=$(git describe --tags) 20 _git_commit=$(git rev-parse --short HEAD) 21 _git_branch=$(git rev-parse --abbrev-ref HEAD) 22 23 _osType=$(uname) 24 if [ "${_osType}" == 'Darwin' ] 25 then 26 _musl=$(otool -L /bin/ls | grep 'musl'|head -n 1| awk '{print $1}') 27 else 28 _musl=$(ldd /bin/ls | grep 'musl'|head -n 1| awk '{print $1}') 29 fi 30 31 if [ "$_musl" == "" ] 32 then 33 _build_tag="-tags utmp" 34 else 35 _build_tag="-tags utmps" 36 fi 37 echo "build with tags : $_build_tag" 38 39 # set ldflags 40 ldflags="-s -w \ 41 -X $_module_name/frontend.BuildTime=$(date -u +%Y-%m-%dT%H:%M:%S) \ 42 -X $_module_name/frontend.GitBranch=$_git_branch \ 43 -X $_module_name/frontend.GitCommit=$_git_commit \ 44 -X $_module_name/frontend.GitTag=$_git_tag \ 45 -X $_module_name/frontend.GoVersion=$_go_version \ 46 " 47 # required for github.com/docker/docker 48 export GO111MODULE=auto 49 50 # build server for test 51 echo "build server start: $(date '+%F %T')" 52 go build $_build_tag -cover -coverpkg=$PKGS -ldflags="$ldflags" -o ~/.local/bin/apshd 53 echo "build server end : $(date '+%F %T')" 54 echo "output server to : ~/.local/bin/apshd" 55 56 # for linux sudo copy apshed to /usr/bin 57 if [ "${_osType}" == 'Linux' ] 58 then 59 echo "copy server to : /usr/bin/apshd" 60 sudo cp ~/.local/bin/apshd /usr/bin/apshd 61 fi 62 63 echo "run with : GOCOVERDIR=./coverage/int apshd -verbose 2> /tmp/apshd.log"