From ad330b49cec8d32f1a0cdf1d82c9c4e0f89bb736 Mon Sep 17 00:00:00 2001 From: James Sully Date: Fri, 26 Jul 2024 15:47:13 +1000 Subject: [PATCH] better install method (WIP) --- .github/workflows/ci.yml | 10 +++++++-- create_release.sh | 35 ----------------------------- scripts/install.sh => install.sh | 38 ++++++++++++++++++++------------ 3 files changed, 32 insertions(+), 51 deletions(-) delete mode 100755 create_release.sh rename scripts/install.sh => install.sh (60%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 787512f..44ad2b9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,10 +16,16 @@ jobs: use-mathlib-cache: "false" build: "true" - name: Create package + # todo parameterize version run: | - ./create_release.sh + RELEASE_DIR=sand-release + mkdir -p $RELEASE_DIR + env PREFIX="$RELEASE_DIR" ./install.sh + RELEASE_ARCHIVE=sand-x86_64-linux.tar.zst + tar --zstd -cvf "$RELEASE_ARCHIVE" "$RELEASE_DIR" + echo "release archive created at $RELEASE_ARCHIVE" - name: Upload artifact uses: actions/upload-artifact@v4.3.4 with: name: sand - path: release/sand-x86_64-linux.tar.zst + path: sand-x86_64-linux.tar.zst diff --git a/create_release.sh b/create_release.sh deleted file mode 100755 index 74f116a..0000000 --- a/create_release.sh +++ /dev/null @@ -1,35 +0,0 @@ -set -e - -if [ ! -f .lake/build/bin/sand ]; then - echo 'Please build the project first with `lake build`' - exit 1 -fi - -# tag=$(git describe --tags --abbrev=0) -# dir="sand-$tag" -dir="sand" - -set -x - -mkdir -p "release/$dir" - -cp -f .lake/build/bin/sand release/$dir/ -cp -rf resources release/$dir/ -cp -f scripts/install.sh release/$dir/ -cp -f LICENSE release/$dir/ -cp -f README.md release/$dir/ - -pushd release/ > /dev/null - -strip $dir/sand - -archive="$dir-x86_64-linux.tar.zst" - -tar --zstd -cvf $archive $dir 2>&1 > /dev/null - -popd > /dev/null - -set +x - -echo "release created at release/$dir" -echo "release archive created at release/$archive" diff --git a/scripts/install.sh b/install.sh similarity index 60% rename from scripts/install.sh rename to install.sh index 8cd4753..dad26e3 100755 --- a/scripts/install.sh +++ b/install.sh @@ -2,19 +2,32 @@ set -e -BIN_PATH="/usr/bin/sand" -SERVICE_PATH="/usr/lib/systemd/user/sand.service" -SOCKET_PATH="/usr/lib/systemd/user/sand.socket" -SOUND_DIR="/usr/share/sand" +PREFIX="${PREFIX:-/usr/local}" + +BIN_PATH="$PREFIX/bin/sand" +SERVICE_PATH="$PREFIX/lib/systemd/user/sand.service" +SOCKET_PATH="$PREFIX/lib/systemd/user/sand.socket" + +SOUND_DIR="$PREFIX/share/sand" SOUND_PATH="$SOUND_DIR/timer_sound.opus" +README_DIR="$PREFIX/share/doc/sand" +README_PATH="$README_DIR/README.md" + +LICENSE_DIR="$PREFIX/share/licenses/sand" +LICENSE_PATH="$LICENSE_DIR/LICENSE" + install_sand() { set -x - install -Dm755 ./sand "$BIN_PATH" + install -Dm755 ./.lake/build/bin/sand "$BIN_PATH" install -Dm644 resources/systemd/sand.service "$SERVICE_PATH" install -Dm644 resources/systemd/sand.socket "$SOCKET_PATH" install -Dm644 resources/timer_sound.opus "$SOUND_PATH" + install -Dm644 README.md "$README_PATH" + install -Dm644 LICENSE "$LICENSE_PATH" + + strip "$BIN_PATH" { set +x; } 2>/dev/null @@ -30,8 +43,12 @@ install_sand() { uninstall_sand() { set -x - rm -f "$BIN_PATH" "$SERVICE_PATH" "$SOCKET_PATH" "$SOUND_PATH" - rm -rf "$SOUND_DIR" + rm -f "$BIN_PATH" + rm -f "$SERVICE_PATH" + rm -f "$SOCKET_PATH" + rm -rf "$SOUND_DIR" + rm -rf "$README_DIR" + rm -rf "$LICENSE_DIR" { set +x; } 2>/dev/null @@ -43,13 +60,6 @@ show_help() { exit 1 } -# Check if run with sufficient permissions -if [ "$EUID" -ne 0 ]; then - echo "Please run as root or use sudo" - exit 1 -fi - -# Parse command line arguments case "$1" in install|"") install_sand