#!/usr/bin/env bash

set -euxo pipefail


VERSION=${REF#"refs/tags/"}
DIST=`pwd`/dist
# This var can be modified if need be.
BIN=${GITHUB_REPOSITORY##*/}

echo "Packaging $BIN $VERSION for $TARGET..."

test -f Cargo.lock || cargo generate-lockfile

echo "All gcc"
compgen -c | grep gcc

echo "Building $BIN..."
RUSTFLAGS="--deny warnings --codegen target-feature=+crt-static $TARGET_RUSTFLAGS" \
  cargo build --bin $BIN --target $TARGET --release
EXECUTABLE=target/$TARGET/release/$BIN

if [[ $OS == windows-latest ]]; then
  EXECUTABLE=$EXECUTABLE.exe
fi

echo "Copying release files..."
mkdir dist
cp \
  $EXECUTABLE \
  Cargo.lock \
  Cargo.toml \
  LICENSE.md \
  README.md \
  $DIST

cd $DIST
echo "Creating release archive..."
case $OS in
  ubuntu-latest | macos-latest)
    ARCHIVE=$DIST/$BIN-$VERSION-$TARGET.tar.gz
    tar czf $ARCHIVE *
    echo "::set-output name=archive::$ARCHIVE"
    ;;
  windows-latest)
    ARCHIVE=$DIST/$BIN-$VERSION-$TARGET.zip
    7z a $ARCHIVE *
    echo "::set-output name=archive::`pwd -W`/$BIN-$VERSION-$TARGET.zip"
    ;;
esac
