github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/scripts/make-tarball (about)

     1  #! /bin/bash --posix
     2  
     3  set -eu
     4  
     5  readonly command="$1"
     6  shift
     7  
     8  readonly bin="$GOPATH/bin/$command"
     9  readonly target="/tmp/$LOGNAME/$command.tar.gz"
    10  
    11  (cd $GOPATH/src; go install github.com/Cloud-Foundations/Dominator/cmd/$command)
    12  
    13  strip -o "$bin~" "$bin"
    14  if cmp -s "$bin~" "$bin"; then
    15      rm "$bin~"
    16  else
    17      touch -r "$bin" "$bin~"
    18      mv "$bin~" "$bin"
    19  fi
    20  
    21  readonly tmpdir="$(mktemp -d '/tmp/make-tarball.XXXXXX')" || exit
    22  trap "rm -rf $tmpdir" EXIT
    23  
    24  if [ -x "$PWD/cmd/$command/install" ]; then
    25      cp -p "$PWD/cmd/$command/install" "$tmpdir"
    26  else
    27      cat > "$tmpdir/install" <<EOF
    28  #! /bin/bash --posix
    29  
    30  set -o nounset
    31  
    32  cd "\${0%/*}"
    33  
    34  . ./scripts/install.lib
    35  
    36  install_all $command
    37  EOF
    38      chmod a+rx "$tmpdir/install"
    39  fi
    40  
    41  tar --owner=0 --group=0 -czf $target \
    42      init.d/$command.* \
    43      scripts/install.lib \
    44      "$@" \
    45      -C $PWD/cmd/$command health-check.yml \
    46      -C "$tmpdir" install \
    47      -C $GOPATH bin/$command