diff options
-rw-r--r-- | .SRCINFO | 2 | ||||
-rw-r--r-- | PKGBUILD | 4 | ||||
-rw-r--r-- | arbie.install | 85 |
3 files changed, 59 insertions, 32 deletions
@@ -1,6 +1,6 @@ pkgbase = arbie-git pkgdesc = Encrypted backup and synchronization tool - pkgver = v1.3.1.r7.g57fd068 + pkgver = v1.3.1.r9.gffe0a05 pkgrel = 1 url = https://github.com/danisztls/arbie install = arbie.install @@ -5,7 +5,7 @@ _gitauthor="danisztls" _gitbranch="main" pkgname="${_pkgname}-git" -pkgver=v1.3.1.r7.g57fd068 +pkgver=v1.3.1.r9.gffe0a05 pkgrel=1 pkgdesc="Encrypted backup and synchronization tool" arch=('any') @@ -21,7 +21,7 @@ conflicts=("${_pkgname}") replaces=() backup=() options=() -install=arbie.install +install="${_pkgname}.install" changelog= source=("git+https://github.com/${_gitauthor}/${_pkgname}.git#branch=${_gitbranch}") noextract=() diff --git a/arbie.install b/arbie.install index d499fa7280f3..705e8b87fecb 100644 --- a/arbie.install +++ b/arbie.install @@ -1,52 +1,79 @@ -# based on https://github.com/archlinux/svntogit-community/tree/packages/profile-sync-daemon/trunk -# shellcheck disable=SC2016 # don't wish them to expand +#!/bin/bash -# users=($(loginctl --no-legend list-users | awk '{ print $2 }' | sed ':a;N;$!ba')) +basename="arbie" mapfile -t users < <(loginctl --no-legend list-users | awk '{ print $2 }' | sed ':a;N;$!ba') +_refresh_daemon() { + su "$1" -s /bin/sh -c XDG_RUNTIME_DIR=/run/user/$UID systemctl --user daemon-reload +} + +_enable_service() { + su "$1" -s /bin/sh -c "XDG_RUNTIME_DIR=/run/user/\$UID systemctl --user enable $basename" +} + +_start_service() { + su "$1" -s /bin/sh -c "XDG_RUNTIME_DIR=/run/user/\$UID systemctl --user start $basename" +} + +_is_service_active() { + if su "$1" -s /bin/sh -c "XDG_RUNTIME_DIR=/run/user/\$UID systemctl --user is-active $basename" &>/dev/null + then + return 0 + else + return 1 + fi +} + +_is_service_enabled() { + if su "$1" -s /bin/sh -c "XDG_RUNTIME_DIR=/run/user/\$UID systemctl --user is-enabled $basename" &>/dev/null + then + return 0 + else + return 1 + fi +} + +_stop_service() { + su "$1" -s /bin/sh -c "XDG_RUNTIME_DIR=/run/user/\$UID systemctl --user stop $basename" +} + +# INSTALL # pre_install() { # } -# post_install() { -# } +post_install() { + for user in "${users[@]}"; do + _refresh_daemon "$user" + _start_service "$user" + _enable_service "$user" + done +} pre_upgrade() { - # stop system service now since it will be removed upon updating - if systemctl is-active arbie.service &>/dev/null; then - systemctl stop arbie.service &>/dev/null - fi + for user in "${users[@]}"; do + _stop_service "$user" + done } post_upgrade() { - _daemon_refresh + for user in "${users[@]}"; do + _refresh_daemon "$user" + _start_service "$user" + done } pre_remove() { for user in "${users[@]}"; do - if _daemon_user_check "$user"; then - _daemon_user_stop "$user" + if _is_service_active "$user"; then + _stop_service "$user" + _disable_service "$user" fi done } -# post_remove() { -# } - -_daemon_refresh() { +post_remove() { for user in "${users[@]}"; do - su "$user" -s /bin/sh -c 'XDG_RUNTIME_DIR=/run/user/$UID systemctl --user daemon-reload' + _refresh_daemon "$user" done } -_daemon_user_check() { - running="$(su "$1" -s /bin/sh -c 'XDG_RUNTIME_DIR=/run/user/$UID systemctl --user is-active arbie')" - if [[ "$running" = "active" ]]; then - return 0 - else - return 1 - fi -} - -_daemon_user_stop() { - su "$1" -s /bin/sh -c 'XDG_RUNTIME_DIR=/run/user/$UID systemctl --user stop arbie.service' -} |