aboutsummaryrefslogtreecommitdiffstats
path: root/install.sh
diff options
context:
space:
mode:
authorsalmonik <raisersoft@proton.me>2026-05-06 13:07:26 +0200
committersalmonik <raisersoft@proton.me>2026-05-06 13:07:26 +0200
commit26d6630f5b396964efb6df5cf424d536a59e5329 (patch)
tree0146cc7f7be1b9577edbec57d2427ac9f95650ec /install.sh
parentMark unit tests as completed in TODO.md (diff)
downloadrsplayer-26d6630f5b396964efb6df5cf424d536a59e5329.tar.gz
rsplayer-26d6630f5b396964efb6df5cf424d536a59e5329.zip
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)
Diffstat (limited to 'install.sh')
-rwxr-xr-xinstall.sh55
1 files changed, 55 insertions, 0 deletions
diff --git a/install.sh b/install.sh
new file mode 100755
index 0000000..6429345
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,55 @@
1#!/bin/bash
2set -e
3
4echo "Building rsplayer in release mode..."
5cargo build --release
6
7echo "Stopping existing daemon..."
8systemctl --user stop rsplayer 2>/dev/null || true
9rsp stop 2>/dev/null || true
10
11echo "Installing to /usr/bin/rsp..."
12sudo cp target/release/rsp /usr/bin/rsp
13sudo chmod +x /usr/bin/rsp
14
15echo "Installing shell completions for current shell..."
16SHELL_NAME=$(basename "$SHELL")
17
18case "$SHELL_NAME" in
19 zsh)
20 sudo mkdir -p /usr/share/zsh/site-functions
21 sudo cp completions/rsp.zsh /usr/share/zsh/site-functions/_rsp
22 sudo chmod +x /usr/share/zsh/site-functions/_rsp
23 echo "Installed completions for $SHELL_NAME"
24 ;;
25 bash)
26 sudo mkdir -p /usr/share/bash-completion/completions
27 sudo cp completions/rsp.bash /usr/share/bash-completion/completions/rsp
28 sudo chmod +x /usr/share/bash-completion/completions/rsp
29 echo "Installed completions for $SHELL_NAME"
30 ;;
31 fish)
32 sudo mkdir -p /usr/share/fish/vendor_completions.d
33 sudo cp completions/rsp.fish /usr/share/fish/vendor_completions.d/rsp.fish
34 sudo chmod +x /usr/share/fish/vendor_completions.d/rsp.fish
35 echo "Installed completions for $SHELL_NAME"
36 ;;
37 *)
38 echo "Unknown shell: $SHELL_NAME, installing no completions..."
39 ;;
40esac
41
42echo "Installing systemd service..."
43mkdir -p ~/.config/systemd/user
44cp rsplayer.service ~/.config/systemd/user/
45
46if systemctl --user is-active default.target &>/dev/null; then
47 systemctl --user daemon-reload
48 echo "To enable auto-start: systemctl --user enable rsplayer"
49else
50 echo "Service installed but not enabled (no user session running)"
51 echo "To enable later when logged in: systemctl --user enable rsplayer"
52fi
53
54echo ""
55echo "Done! Run 'rsp start' to start the daemon."