#!/usr/bin/env bash set -euo pipefail ##? action release export NAVI_HOME="$(cd "$(dirname "$0")/.." && pwd)" source "${NAVI_HOME}/scripts/install" release() { TAR_DIR="${NAVI_HOME}/target/tar" target="${1:-}" if [[ $target == *"osx"* ]]; then echoerr "OSX cross-compile is impossible. Fallbacking to cargo..." target="" fi cd "$NAVI_HOME" rm -rf "${NAVI_HOME}/target" 2> /dev/null || true if [ -n "$target" ]; then cargo install cross 2> /dev/null || true cross build --release --locked --target "$target" bin_folder="${target}/release" else cargo build --release --locked bin_folder="release" fi bin_path="${NAVI_HOME}/target/${bin_folder}/navi" chmod +x "$bin_path" mkdir -p "$TAR_DIR" 2> /dev/null || true cp "$bin_path" "$TAR_DIR" cd "$TAR_DIR" tar -czf navi.tar.gz * } workflow() { WORKFLOW_DIR="${NAVI_HOME}/target/workflow" cd "$NAVI_HOME" rm -rf "${NAVI_HOME}/target" 2> /dev/null || true mkdir -p "$WORKFLOW_DIR" 2> /dev/null || true cp ${NAVI_HOME}/alfred/* "$WORKFLOW_DIR" cd "$WORKFLOW_DIR" zip -j -r navi.zip * } cmd="$1" shift case "$cmd" in "release") release "$@" ;; "workflow") workflow "$@" ;; esac