Add prebuilt update path
This commit is contained in:
Executable
+52
@@ -0,0 +1,52 @@
|
||||
#!/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 <<EOF
|
||||
Wrote:
|
||||
$out_dir/$artifact
|
||||
$out_dir/$versioned_artifact
|
||||
EOF
|
||||
Reference in New Issue
Block a user