diff options
author | Mike Gilbert <floppym@gentoo.org> | 2017-08-25 14:54:41 -0400 |
---|---|---|
committer | Mike Gilbert <floppym@gentoo.org> | 2017-09-02 21:14:43 -0400 |
commit | 5abb788486521824225f7290dde64ed0a4f5132a (patch) | |
tree | 75058c586994aa5917a60f37283336f9ec35adb0 /eclass | |
parent | dev-qt/qt-creator: drop insecure git:// repo URI (diff) | |
download | gentoo-5abb788486521824225f7290dde64ed0a4f5132a.tar.gz gentoo-5abb788486521824225f7290dde64ed0a4f5132a.tar.bz2 gentoo-5abb788486521824225f7290dde64ed0a4f5132a.zip |
systemd.eclass: add systemd_reenable function
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/systemd.eclass | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/eclass/systemd.eclass b/eclass/systemd.eclass index 4b7f5c4cb5fe..63ff5609589d 100644 --- a/eclass/systemd.eclass +++ b/eclass/systemd.eclass @@ -418,3 +418,24 @@ systemd_tmpfiles_create() { type systemd-tmpfiles &> /dev/null || return 0 systemd-tmpfiles --create "${@}" } + +# @FUNCTION: systemd_reenable +# @USAGE: <unit> ... +# @DESCRIPTION: +# Re-enables units if they are currently enabled. This resets symlinks to the +# defaults specified in the [Install] section. +# +# This function is intended to fix broken symlinks that result from moving +# the systemd system unit directory. It should be called from pkg_postinst +# for system units that define the 'Alias' option in their [Install] section. +# It is not necessary to call this function to fix dependency symlinks +# generated by the 'WantedBy' and 'RequiredBy' options. +systemd_reenable() { + type systemctl &>/dev/null || return 0 + local x + for x; do + if systemctl --quiet --root="${ROOT}" is-enabled "${x}"; then + systemctl --root="${ROOT}" reenable "${x}" + fi + done +} |