add whisper
This commit is contained in:
89
whisper/install.sh
Executable file
89
whisper/install.sh
Executable file
@@ -0,0 +1,89 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
BIN_SRC="./whisper"
|
||||
BIN_DST="/usr/bin/whisper"
|
||||
CONF_DIR="/etc/whisper"
|
||||
CONF_DST="$CONF_DIR/.env"
|
||||
CONF_SRC="./example.env"
|
||||
|
||||
die() {
|
||||
printf '%s\n' "$1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
usage() {
|
||||
printf 'Usage: install.sh [-i|--install] [-u|--uninstall] [-h|--help]\n'
|
||||
printf ' -i, --install Install whisper (default)\n'
|
||||
printf ' -u, --uninstall Remove whisper\n'
|
||||
printf ' -h, --help Show this help\n'
|
||||
exit 0
|
||||
}
|
||||
|
||||
do_install() {
|
||||
printf 'This will:\n'
|
||||
printf ' - Copy whisper to %s\n' "$BIN_DST"
|
||||
printf ' - Create %s/ with config\n\n' "$CONF_DIR"
|
||||
|
||||
printf 'Proceed? [Y/n] '
|
||||
read -r answer
|
||||
case "$answer" in
|
||||
[nN]) printf 'Aborted.\n'; exit 0 ;;
|
||||
esac
|
||||
|
||||
[ -f "$BIN_SRC" ] || die "Cannot find $BIN_SRC in current directory"
|
||||
[ -f "$CONF_SRC" ] || die "Cannot find $CONF_SRC in current directory"
|
||||
|
||||
cp "$BIN_SRC" "$BIN_DST"
|
||||
chown root:root "$BIN_DST"
|
||||
chmod 755 "$BIN_DST"
|
||||
|
||||
mkdir -p "$CONF_DIR"
|
||||
|
||||
if [ ! -f "$CONF_DST" ]; then
|
||||
cp "$CONF_SRC" "$CONF_DST"
|
||||
else
|
||||
printf 'Keeping existing %s\n' "$CONF_DST"
|
||||
fi
|
||||
|
||||
chown root:root "$CONF_DST"
|
||||
chmod 600 "$CONF_DST"
|
||||
|
||||
printf '\nInstalled. Edit %s and set your values.\n' "$CONF_DST"
|
||||
}
|
||||
|
||||
do_uninstall() {
|
||||
printf 'This will remove:\n'
|
||||
printf ' - %s\n' "$BIN_DST"
|
||||
printf ' - %s/\n\n' "$CONF_DIR"
|
||||
|
||||
printf 'Proceed? [y/N] '
|
||||
read -r answer
|
||||
case "$answer" in
|
||||
[yY]) ;;
|
||||
*) printf 'Aborted.\n'; exit 0 ;;
|
||||
esac
|
||||
|
||||
rm -f "$BIN_DST"
|
||||
rm -rf "$CONF_DIR"
|
||||
|
||||
printf 'Done.\n'
|
||||
}
|
||||
|
||||
# --- main ---
|
||||
[ "$(id -u)" -eq 0 ] || die "Must be run as root"
|
||||
|
||||
ACTION="install"
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
-i|--install) ACTION="install"; shift ;;
|
||||
-u|--uninstall) ACTION="uninstall"; shift ;;
|
||||
-h|--help) usage ;;
|
||||
*) die "Unknown option: $1" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
case "$ACTION" in
|
||||
install) do_install ;;
|
||||
uninstall) do_uninstall ;;
|
||||
esac
|
||||
Reference in New Issue
Block a user