refactor(moonraker): skip polkit script execution if polkit rules already installed

Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
th33xitus
2022-09-03 13:41:02 +02:00
parent c11e628c55
commit 03be46f012

View File

@@ -208,7 +208,7 @@ function moonraker_setup() {
create_moonraker_service "${instance_arr[@]}" create_moonraker_service "${instance_arr[@]}"
### step 5: create polkit rules for moonraker ### step 5: create polkit rules for moonraker
moonraker_polkit || true install_moonraker_polkit || true
### step 6: enable and start all instances ### step 6: enable and start all instances
do_action_service "enable" "moonraker" do_action_service "enable" "moonraker"
@@ -379,8 +379,20 @@ function print_mr_ip_list() {
### introduced due to ### introduced due to
### https://github.com/Arksine/moonraker/issues/349 ### https://github.com/Arksine/moonraker/issues/349
### https://github.com/Arksine/moonraker/pull/346 ### https://github.com/Arksine/moonraker/pull/346
function moonraker_polkit() { function install_moonraker_polkit() {
local POLKIT_LEGACY_FILE="/etc/polkit-1/localauthority/50-local.d/10-moonraker.pkla"
local POLKIT_FILE="/etc/polkit-1/rules.d/moonraker.rules"
local POLKIT_USR_FILE="/usr/share/polkit-1/rules.d/moonraker.rules"
local legacy_file_exists
local file_exists
local usr_file_exists
local has_sup local has_sup
local require_daemon_reload="false"
legacy_file_exists=$(sudo find "${POLKIT_LEGACY_FILE}" 2> /dev/null)
file_exists=$(sudo find "${POLKIT_FILE}" 2> /dev/null)
usr_file_exists=$(sudo find "${POLKIT_USR_FILE}" 2> /dev/null)
### check for required SupplementaryGroups entry in service files ### check for required SupplementaryGroups entry in service files
### write it to the service if it doesn't exist ### write it to the service if it doesn't exist
@@ -389,14 +401,25 @@ function moonraker_polkit() {
if [[ -z ${has_sup} ]]; then if [[ -z ${has_sup} ]]; then
status_msg "Adding moonraker-admin supplementary group to ${service} ..." status_msg "Adding moonraker-admin supplementary group to ${service} ..."
sudo sed -i "/^Type=simple$/a SupplementaryGroups=moonraker-admin" "${service}" sudo sed -i "/^Type=simple$/a SupplementaryGroups=moonraker-admin" "${service}"
require_daemon_reload="true"
ok_msg "Adding moonraker-admin supplementary group successfull!" ok_msg "Adding moonraker-admin supplementary group successfull!"
fi fi
done done
[[ -z ${has_sup} ]] && echo "reloading services!!!" && sudo systemctl daemon-reload if [[ ${require_daemon_reload} == "true" ]]; then
status_msg "Reloading unit files ..."
sudo systemctl daemon-reload
ok_msg "Unit files reloaded!"
fi
### execute moonrakers policykit-rules script ### execute moonrakers policykit-rules script only if rule files do not already exist
"${HOME}"/moonraker/scripts/set-policykit-rules.sh if [[ -z ${legacy_file_exists} && ( -z ${file_exists} || -z ${usr_file_exists} ) ]]; then
status_msg "Installing Moonraker policykit rules ..."
"${HOME}"/moonraker/scripts/set-policykit-rules.sh
ok_msg "Moonraker policykit rules installed!"
fi
return
} }
#==================================================# #==================================================#
@@ -518,7 +541,7 @@ function update_moonraker() {
fi fi
### required due to https://github.com/Arksine/moonraker/issues/349 ### required due to https://github.com/Arksine/moonraker/issues/349
moonraker_polkit || true install_moonraker_polkit || true
ok_msg "Update complete!" ok_msg "Update complete!"
do_action_service "restart" "moonraker" do_action_service "restart" "moonraker"