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"