pwnagotchi_angrygotchi/angry_scripts/install.sh

83 lines
2.1 KiB
Bash
Raw Normal View History

2026-04-09 17:22:03 +00:00
#!/bin/bash
prog="angryoxide"
bash_completion_script="completions/bash_angryoxide_completions"
zsh_completion_script="completions/zsh_angryoxide_completions"
BASH_COMPLETION_DIR="/etc/bash_completion.d"
ZSH_COMPLETION_DIR="/home"
check_root() {
if [[ "$(id -u)" -ne 0 ]]; then
echo "This operation must be run as root. Please use sudo." >&2
exit 1
fi
}
install_binary() {
check_root
echo "Installing $prog binary..."
chmod +x $prog
cp "$prog" "/usr/bin/$prog"
}
install_bash() {
check_root
if command -v bash &> /dev/null; then
echo "Installing bash completion for $prog..."
mkdir -p "$BASH_COMPLETION_DIR"
cp "$bash_completion_script" "$BASH_COMPLETION_DIR/$prog"
echo "Bash completion installed successfully."
else
echo "Bash not found, skipping Bash completion installation."
fi
}
install_zsh() {
check_root
if command -v zsh &> /dev/null; then
echo "Installing zsh completion for $prog for all users..."
for dir in $ZSH_COMPLETION_DIR/*; do
if [[ -d "$dir" ]]; then
user=$(basename "$dir")
zsh_dir="$dir/.zsh/completion"
echo "Installing for user $user..."
mkdir -p "$zsh_dir"
cp "$zsh_completion_script" "$zsh_dir/_$prog"
chown "$user:$user" "$zsh_dir/_$prog"
fi
done
echo "Zsh completion installed successfully for all users."
else
echo "Zsh not found, skipping Zsh completion installation."
fi
}
uninstall() {
check_root
echo "Uninstalling $prog..."
rm -f "/usr/bin/$prog"
rm -f "$BASH_COMPLETION_DIR/$prog"
for dir in $ZSH_COMPLETION_DIR/*; do
if [[ -d "$dir" ]]; then
rm -f "$dir/.zsh/completion/_$prog"
fi
done
echo "Cleaned installed binary and completion scripts."
}
case "$1" in
install)
install_binary
install_bash
install_zsh
;;
uninstall)
uninstall
;;
*)
install_binary
install_bash
install_zsh
;;
esac