Add user services to uninstall

This commit is contained in:
2022-01-12 11:52:59 -05:00
parent eda53412fa
commit 73f15fa946

View File

@@ -8,7 +8,7 @@
# #
# See installJRMC --help or printHelp() below # See installJRMC --help or printHelp() below
# #
# TODO # TODO (v2)
# 1. Raspberry Pi OS support # 1. Raspberry Pi OS support
# 2. Interactive installation (ncurses?) # 2. Interactive installation (ncurses?)
# 3. Additional containerization (createrepo and rpmbuild) # 3. Additional containerization (createrepo and rpmbuild)
@@ -22,8 +22,8 @@ shopt -s extglob
declare -g SCRIPTVERSION="1.0b6" declare -g SCRIPTVERSION="1.0b6"
declare -g OUTPUTDIR="$PWD/output" declare -g OUTPUTDIR="$PWD/output"
declare -g CREATEREPO_WEBROOT="/var/www/jriver" declare -g CREATEREPO_WEBROOT="/var/www/jriver"
declare -g USER && USER="${USER:-$(id -un)}" declare -g USER; USER="${USER:-$(id -un)}"
declare -g USER_HOME && USER_HOME=$(grep "$USER" < /etc/passwd | cut -d":" -f6) declare -g USER_HOME; USER_HOME=$(grep "$USER" < /etc/passwd | cut -d":" -f6)
# MC version # MC version
# MCVERSION="28.0.87" # to set manually, if unset use automatic latest check # MCVERSION="28.0.87" # to set manually, if unset use automatic latest check
@@ -913,12 +913,16 @@ setServiceVars() {
systemctl_reload_cmd(){ sudo systemctl daemon-reload; } systemctl_reload_cmd(){ sudo systemctl daemon-reload; }
systemctl_enable_cmd(){ sudo systemctl enable --now "$@"; } systemctl_enable_cmd(){ sudo systemctl enable --now "$@"; }
systemctl_disable_cmd(){ sudo systemctl disable --now "$@"; } systemctl_disable_cmd(){ sudo systemctl disable --now "$@"; }
systemctl_is_enabled_cmd(){ sudo systemctl is-enabled -q "$@"; }
systemctl_is_enabled_cmd(){ sudo systemctl is-active -q "$@"; }
elif [[ "$SERVICE_TYPE" == "user" ]]; then # i.e. systemd user service elif [[ "$SERVICE_TYPE" == "user" ]]; then # i.e. systemd user service
service_dir="$service_user_dir" service_dir="$service_user_dir"
EXEC_USER="$USER" EXEC_USER="$USER"
systemctl_reload_cmd(){ systemctl --user daemon-reload; } systemctl_reload_cmd(){ systemctl --user daemon-reload; }
systemctl_enable_cmd(){ systemctl --user enable --now "$@"; } systemctl_enable_cmd(){ systemctl --user enable --now "$@"; }
systemctl_disable_cmd(){ systemctl --user disable --now "$@"; } systemctl_disable_cmd(){ systemctl --user disable --now "$@"; }
systemctl_is_enabled_cmd(){ systemctl --user is-enabled -q "$@"; }
systemctl_is_active(){ sudo systemctl is-active -q "$@"; }
fi fi
[[ ! -d "$service_dir" ]] && sudo -u "$EXEC_USER" mkdir -p "$service_dir" [[ ! -d "$service_dir" ]] && sudo -u "$EXEC_USER" mkdir -p "$service_dir"
@@ -967,8 +971,8 @@ service_jriver-mediacenter() {
WantedBy=graphical.target WantedBy=graphical.target
EOF" EOF"
systemctl_reload && systemctl_reload_cmd &&
systemctl_enable "$SERVICE_NAME" && systemctl_enable_cmd "$SERVICE_NAME" &&
openFirewall "jriver" openFirewall "jriver"
} }
@@ -1019,8 +1023,8 @@ service_jriver-xvnc() {
WantedBy=default.target WantedBy=default.target
EOF" EOF"
systemctl_reload && systemctl_reload_cmd &&
systemctl_enable "$SERVICE_NAME" && systemctl_enable_cmd "$SERVICE_NAME" &&
echo "Xvnc running on localhost:$port" && echo "Xvnc running on localhost:$port" &&
openFirewall "jriver-xvnc" && openFirewall "jriver-xvnc" &&
openFirewall "jriver" openFirewall "jriver"
@@ -1072,8 +1076,8 @@ service_jriver-x11vnc() {
WantedBy=default.target WantedBy=default.target
EOF" EOF"
systemctl_reload && systemctl_reload_cmd &&
systemctl_enable "$SERVICE_NAME" && systemctl_enable_cmd "$SERVICE_NAME" &&
echo "x11vnc running on localhost:$port" && echo "x11vnc running on localhost:$port" &&
openFirewall "jriver-x11vnc" openFirewall "jriver-x11vnc"
} }
@@ -1112,8 +1116,8 @@ service_jriver-createrepo() {
WantedBy=timers.target WantedBy=timers.target
EOF" EOF"
systemctl_reload && systemctl_reload_cmd &&
systemctl_enable "$TIMER_NAME" systemctl_enable_cmd "$TIMER_NAME"
} }
@@ -1286,26 +1290,36 @@ uninstall() {
debug "Stopping and removing all associated Media Center services" debug "Stopping and removing all associated Media Center services"
for service in $(compgen -A "function" "service"); do for service in $(compgen -A "function" "service"); do
service="${service##service_}" service="${service##service_}"
if ! setServiceVars "$service"; then SERVICE_TYPE=system setServiceVars "$service";
continue
fi
for unit in "$SERVICE_NAME" "$TIMER_NAME"; do for unit in "$SERVICE_NAME" "$TIMER_NAME"; do
if systemctl is-active -q "$unit" &>/dev/null || systemctl is-enabled -q "$unit" &>/dev/null; then if systemctl_is_active_cmd "$unit" &>/dev/null ||
systemctl_is_enabled_cmd "$unit" &>/dev/null; then
debug "Disabling $unit" debug "Disabling $unit"
systemctl_disable "$unit" systemctl_disable_cmd "$unit"
fi fi
done done
for f in "$SERVICE_FNAME" "$TIMER_FNAME"; do for f in "$SERVICE_FNAME" "$TIMER_FNAME"; do
[[ -f "$f" ]] && debug "Removing $f" && rm_cmd "$f" [[ -f "$f" ]] && debug "Removing $f" && rm_cmd "$f"
done done
systemctl_reload SERVICE_TYPE=user setServiceVars "$service";
for unit in "$SERVICE_NAME" "$TIMER_NAME"; do
if systemctl_is_active_cmd "$unit" &>/dev/null ||
systemctl_is_enabled_cmd "$unit" &>/dev/null; then
debug "Disabling $unit"
systemctl_disable_cmd "$unit"
fi
done
for f in "$SERVICE_FNAME" "$TIMER_FNAME"; do
[[ -f "$f" ]] && debug "Removing $f" && rm_cmd "$f"
done
systemctl_reload_cmd
done done
debug "Removing repo files" debug "Removing repo files"
[[ -f "/etc/yum.repos.d/jriver.repo" ]] \ [[ -f "/etc/yum.repos.d/jriver.repo" ]] &&
&& rm_cmd "/etc/yum.repos.d/jriver.repo" rm_cmd "/etc/yum.repos.d/jriver.repo"
[[ -f "/etc/apt/sources.list.d/jriver.list" ]] \ [[ -f "/etc/apt/sources.list.d/jriver.list" ]] &&
&& rm_cmd "/etc/apt/sources.list.d/jriver.list" rm_cmd "/etc/apt/sources.list.d/jriver.list"
if [[ "$ID" =~ ^opensuse.* ]]; then if [[ "$ID" =~ ^opensuse.* ]]; then
sudo zypper rr jriver &>/dev/null sudo zypper rr jriver &>/dev/null
fi fi
@@ -1328,8 +1342,8 @@ uninstall() {
firewall_cmd="firewall_cmd delete allow jriver" firewall_cmd="firewall_cmd delete allow jriver"
debug "$firewall_cmd" || firewall_cmd+=" &>/dev/null" debug "$firewall_cmd" || firewall_cmd+=" &>/dev/null"
eval "$firewall_cmd" eval "$firewall_cmd"
[[ -f "/etc/ufw/applications.d/jriver" ]] \ [[ -f "/etc/ufw/applications.d/jriver" ]] &&
&& rm_cmd /etc/ufw/applications.d/jriver rm_cmd /etc/ufw/applications.d/jriver
fi fi
debug "Uninstalling Media Center package" debug "Uninstalling Media Center package"