#!/usr/bin/env sh set -eu repo_root="$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)" cd "$repo_root" out_dir="${DOSH_PACKAGE_DIR:-target/dosh-release}" version="${DOSH_VERSION:-$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | sed -n '1p')}" normalize_os() { case "$(uname -s)" in Darwin) printf '%s\n' macos ;; Linux) printf '%s\n' linux ;; FreeBSD) printf '%s\n' freebsd ;; *) uname -s | tr '[:upper:]' '[:lower:]' ;; esac } normalize_arch() { case "$(uname -m)" in x86_64|amd64) printf '%s\n' x86_64 ;; arm64|aarch64) printf '%s\n' aarch64 ;; armv7l) printf '%s\n' armv7 ;; *) uname -m | tr '[:upper:]' '[:lower:]' ;; esac } os="$(normalize_os)" arch="$(normalize_arch)" artifact="dosh-$os-$arch.tar.gz" versioned_artifact="dosh-$version-$os-$arch.tar.gz" stage="$out_dir/stage/dosh" cargo build --release rm -rf "$stage" mkdir -p "$stage/bin" "$out_dir" for bin in dosh-client dosh-server dosh-auth dosh-bench; do if [ -f "target/release/$bin" ]; then install -m 0755 "target/release/$bin" "$stage/bin/$bin" fi done printf '%s\n' "$version" >"$stage/VERSION" tar -C "$out_dir/stage" -czf "$out_dir/$artifact" dosh cp "$out_dir/$artifact" "$out_dir/$versioned_artifact" cat <