From 26d6630f5b396964efb6df5cf424d536a59e5329 Mon Sep 17 00:00:00 2001 From: salmonik Date: Wed, 6 May 2026 13:07:26 +0200 Subject: Add install script, shell completions, and systemd service - Add install.sh script that builds release, stops daemon, and installs binary - Add shell completions for bash, zsh, and fish - Add systemd user service unit file - Add public binary declaration in Cargo.toml - Add install command to CLI - Make current_track field public for MPRIS integration (placeholder) --- install.sh | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100755 install.sh (limited to 'install.sh') diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..6429345 --- /dev/null +++ b/install.sh @@ -0,0 +1,55 @@ +#!/bin/bash +set -e + +echo "Building rsplayer in release mode..." +cargo build --release + +echo "Stopping existing daemon..." +systemctl --user stop rsplayer 2>/dev/null || true +rsp stop 2>/dev/null || true + +echo "Installing to /usr/bin/rsp..." +sudo cp target/release/rsp /usr/bin/rsp +sudo chmod +x /usr/bin/rsp + +echo "Installing shell completions for current shell..." +SHELL_NAME=$(basename "$SHELL") + +case "$SHELL_NAME" in + zsh) + sudo mkdir -p /usr/share/zsh/site-functions + sudo cp completions/rsp.zsh /usr/share/zsh/site-functions/_rsp + sudo chmod +x /usr/share/zsh/site-functions/_rsp + echo "Installed completions for $SHELL_NAME" + ;; + bash) + sudo mkdir -p /usr/share/bash-completion/completions + sudo cp completions/rsp.bash /usr/share/bash-completion/completions/rsp + sudo chmod +x /usr/share/bash-completion/completions/rsp + echo "Installed completions for $SHELL_NAME" + ;; + fish) + sudo mkdir -p /usr/share/fish/vendor_completions.d + sudo cp completions/rsp.fish /usr/share/fish/vendor_completions.d/rsp.fish + sudo chmod +x /usr/share/fish/vendor_completions.d/rsp.fish + echo "Installed completions for $SHELL_NAME" + ;; + *) + echo "Unknown shell: $SHELL_NAME, installing no completions..." + ;; +esac + +echo "Installing systemd service..." +mkdir -p ~/.config/systemd/user +cp rsplayer.service ~/.config/systemd/user/ + +if systemctl --user is-active default.target &>/dev/null; then + systemctl --user daemon-reload + echo "To enable auto-start: systemctl --user enable rsplayer" +else + echo "Service installed but not enabled (no user session running)" + echo "To enable later when logged in: systemctl --user enable rsplayer" +fi + +echo "" +echo "Done! Run 'rsp start' to start the daemon." -- cgit v1.2.3