From 5f7185e5b11c08483501e02c56c95dccd7d6197a Mon Sep 17 00:00:00 2001 From: Axodouble Date: Thu, 14 May 2026 07:48:12 +0000 Subject: [PATCH] Updated shell assumptions --- install.sh | 64 ++++++++++++++++++++++-------------------------------- 1 file changed, 26 insertions(+), 38 deletions(-) diff --git a/install.sh b/install.sh index c1cf86f..d3e4884 100644 --- a/install.sh +++ b/install.sh @@ -24,47 +24,38 @@ fi # Check if the user is allowed to write to /usr/local/bin, if so, install qu there, else error out and ask the user to install qu manually if [ -w "$(dirname "$INSTALL_BIN")" ]; then -# Get release tag by $(curl -s https://git.cer.sh/api/v1/repos/axodouble/quptime/releases/latest | jq -r '.tag_name') + # Get release tag by $(curl -s https://git.cer.sh/api/v1/repos/axodouble/quptime/releases/latest | jq -r '.tag_name') RELEASE=$(curl -s https://git.cer.sh/api/v1/repos/axodouble/quptime/releases/latest | jq -r '.tag_name') # Download the latest release binary from the Git repository and save it to /usr/local/bin/qu - if command -v curl > /dev/null; then - echo_cmd "curl -L -o \"/usr/local/bin/qu\" \"https://git.cer.sh/axodouble/quptime/releases/download/${RELEASE}/qu-${RELEASE}-linux-amd64\"" - echo_cmd "chmod +x \"/usr/local/bin/qu\"" - echo "> qu has been installed to /usr/local/bin/qu" - - # Drop completions into the directories each shell already scans. - # No rc-file edits, and uninstall is just `rm`. Silently skips - # shells whose completion dir is absent. - if "$INSTALL_BIN" --help 2>/dev/null | grep -q "completion"; then - write_completion() { - local shell=$1 path=$2 - [ -d "$(dirname "$path")" ] || return 1 - if "$INSTALL_BIN" completion "$shell" > "$path" 2>/dev/null; then - echo "> installed $shell completion -> $path" - return 0 - fi - rm -f "$path" - return 1 - } - write_completion bash /usr/share/bash-completion/completions/qu \ - || write_completion bash /etc/bash_completion.d/qu - write_completion zsh /usr/share/zsh/site-functions/_qu - write_completion fish /usr/share/fish/vendor_completions.d/qu.fish - else - echo "> qu does not expose completion support; skipping shell completion installation." - fi + + echo_cmd "curl -L -o \"/usr/local/bin/qu\" \"https://git.cer.sh/axodouble/quptime/releases/download/${RELEASE}/qu-${RELEASE}-linux-amd64\"" + echo_cmd "chmod +x \"/usr/local/bin/qu\"" + echo "> qu has been installed to /usr/local/bin/qu" + + if "$INSTALL_BIN" --help 2>/dev/null | grep -q "completion"; then + write_completion() { + local shell=$1 path=$2 + [ -d "$(dirname "$path")" ] || return 1 + if "$INSTALL_BIN" completion "$shell" > "$path" 2>/dev/null; then + echo "> installed $shell completion -> $path" + return 0 + fi + rm -f "$path" + return 1 + } + write_completion bash /usr/share/bash-completion/completions/qu \ + || write_completion bash /etc/bash_completion.d/qu + write_completion zsh /usr/share/zsh/site-functions/_qu + write_completion fish /usr/share/fish/vendor_completions.d/qu.fish else - echo "Error: curl is not installed. Please install curl and try again." - exit 1 + echo "> qu does not expose completion support; skipping shell completion installation." fi else echo "Error: You are not allowed to write to /usr/local/bin. Please install qu manually, or run this script with sudo." exit 1 fi -# Check if the user has systemd, if so create a systemd service file for qu serve -if command -v systemctl > /dev/null; then - echo "> Creating systemd service file for qu serve..." +echo "> Creating systemd service file for qu serve..." cat < "$SERVICE_FILE" [Unit] @@ -80,11 +71,8 @@ Group=$SERVICE_GROUP [Install] WantedBy=multi-user.target EOL - echo_cmd "systemctl daemon-reload" - echo_cmd "systemctl enable $(basename "$SERVICE_FILE")" - echo "> qu serve service has been created and enabled. You can start it with 'systemctl start $(basename "$SERVICE_FILE")'" -else - echo "> Warning: systemd is not available on this system. qu serve will not be automatically started on boot. You can start it manually with '$INSTALL_BIN serve'" -fi +echo_cmd "systemctl daemon-reload" +echo_cmd "systemctl enable $(basename "$SERVICE_FILE")" +echo "> qu serve service has been created and enabled. You can start it with 'systemctl start $(basename "$SERVICE_FILE")'" echo "Installation complete, before starting `qu serve`, make sure to run `qu init` and read the documentation."