[arch-commits] Commit in profile-sync-daemon/repos (3 files)
David Runge
dvzrv at archlinux.org
Fri Feb 14 16:23:02 UTC 2020
Date: Friday, February 14, 2020 @ 16:23:00
Author: dvzrv
Revision: 571140
archrelease: copy trunk to community-any
Added:
profile-sync-daemon/repos/community-any/
profile-sync-daemon/repos/community-any/PKGBUILD
(from rev 571139, profile-sync-daemon/trunk/PKGBUILD)
profile-sync-daemon/repos/community-any/profile-sync-daemon.install
(from rev 571139, profile-sync-daemon/trunk/profile-sync-daemon.install)
-----------------------------+
PKGBUILD | 27 +++++++
profile-sync-daemon.install | 155 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 182 insertions(+)
Copied: profile-sync-daemon/repos/community-any/PKGBUILD (from rev 571139, profile-sync-daemon/trunk/PKGBUILD)
===================================================================
--- community-any/PKGBUILD (rev 0)
+++ community-any/PKGBUILD 2020-02-14 16:23:00 UTC (rev 571140)
@@ -0,0 +1,27 @@
+# Maintainer: David Runge <dvzrv at archlinux.org>
+# Contributor: graysky <graysky AT archlinux DOT us>
+
+pkgname=profile-sync-daemon
+pkgver=6.35
+pkgrel=2
+pkgdesc="Symlinks and syncs browser profile dirs to RAM"
+arch=('any')
+url="https://github.com/graysky2/profile-sync-daemon"
+license=('MIT')
+depends=('bash' 'findutils' 'procps-ng' 'rsync' 'systemd')
+optdepends=('zsh-completions: for completion when using zsh')
+install="${pkgname}.install"
+source=("$pkgname-$pkgver.tar.gz::https://github.com/graysky2/$pkgname/archive/v$pkgver.tar.gz")
+sha512sums=('e406d39c4edeabc8baa45320a97656791d4099cc8db84aac2cb9f72ef2ed034c82bba73d53457f4ae4201c945af106717d2d979df5a3f154e307f2e6cc41411a')
+
+build() {
+ cd "$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+ install -vDm 644 MIT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -vDm 644 README.md -t "${pkgdir}/usr/share/doc/${pkgname}"
+}
Copied: profile-sync-daemon/repos/community-any/profile-sync-daemon.install (from rev 571139, profile-sync-daemon/trunk/profile-sync-daemon.install)
===================================================================
--- community-any/profile-sync-daemon.install (rev 0)
+++ community-any/profile-sync-daemon.install 2020-02-14 16:23:00 UTC (rev 571140)
@@ -0,0 +1,155 @@
+## arg 1: the new package version
+## arg 2: the old package version
+# shellcheck disable=SC2016
+
+users=$(loginctl --no-legend list-users | awk '{ print $2 }' | sed ':a;N;$!ba;s/\n/ /g')
+
+pre_upgrade() {
+ # version 6.00 is a major rebuild
+ # yes, I realize that pacman should not stop services but in this case it
+ # is required or else browser profiles (user data) can get renamed and confuse
+ # people if it does not happen
+ if [ "$(vercmp "$2" 6.00)" -lt 0 ]; then
+ echo 'Attention: Major changes have been introduced with 6.00+'
+ echo 'Instead of a system service a user service is now used.'
+ echo 'Only $HOME/.config/psd/psd.conf is used (and automatically created on first start).'
+ echo 'To use overlayfs additional setup steps are required (see `man 1 psd`).'
+
+ # stop system service now since it will be removed upon updating
+ if systemctl is-active psd.service &>/dev/null; then
+ systemctl stop psd.service &>/dev/null
+ fi
+ fi
+
+ # version 6.01 redefines the location of tmpfs for the software so it is
+ # required that pacman stop the user service here if running
+ if [ "$(vercmp "$2" 6.01)" -lt 0 ]; then
+ for user in $users; do
+ if _psd_running_for_user "$user"; then
+ _stop_psd_for_user "$user"
+ _diff_recommendation
+ fi
+ done
+ fi
+
+ if [ "$(vercmp "$2" 6.03)" -lt 0 ]; then
+ for user in $users; do
+ HOMEDIR="$(getent passwd "$user" | cut -d: -f6)"
+ if [[ -d "$HOMEDIR"/.psd ]]; then
+ echo 'The use of $HOME/.psd for configuration is deprecated.'
+ echo 'Psd will move it for you upon next invocation to $XDG_CONFIG_HOME/psd'
+ fi
+ done
+
+ # version 6.05 impliments changes to both the service and the way overlayfs is mounted/umount
+ # so it is required that pacman stop the user service here if running
+ if [ "$(vercmp "$2" 6.05)" -lt 0 ]; then
+ for user in $users; do
+ if _psd_running_for_user "$user"; then
+ _stop_psd_for_user "$user"
+ echo 'Users of overlayfs: Before starting the service `psd p` must be run.'
+ fi
+ done
+ fi
+ fi
+
+ # version 6.07 has minor changes to config file
+ if [ "$(vercmp "$2" 6.07)" -lt 0 ]; then
+ _diff_recommendation
+ fi
+
+ # version 6.10 relocates pid file
+ if [ "$(vercmp "$2" 6.10)" -lt 0 ]; then
+ for user in $users; do
+ if _psd_running_for_user "$user"; then
+ _stop_psd_for_user "$user"
+ fi
+ done
+ fi
+
+ # version 6.14 changes the way overlayfs works
+ if [ "$(vercmp "$2" 6.14)" -lt 0 ]; then
+ for user in $users; do
+ if _psd_running_for_user "$user"; then
+ _stop_psd_for_user "$user"
+ fi
+ done
+ fi
+
+ # version 6.16 has minor changes to config file
+ if [ "$(vercmp "$2" 6.16)" -lt 0 ]; then
+ _diff_recommendation
+ fi
+
+ # version 6.22 has minor changes to config file
+ if [ "$(vercmp "$2" 6.22)" -lt 0 ]; then
+ _diff_recommendation
+ fi
+
+ # version 6.30 has minor changes to config file
+ if [ "$(vercmp "$2" 6.30)" -lt 0 ]; then
+ _diff_recommendation
+ fi
+}
+
+post_upgrade() {
+ # version 6.01 redefines the location of tmpfs for the software so it is
+ # required that pacman stop the user service here if running
+ if [ "$(vercmp "$2" 6.01)" -lt 0 ]; then
+ _daemon_refresh
+ fi
+
+ # version 6.05 impliments changes to both the service and the way overlayfs is mounted/umount
+ # so it is required that pacman stop the user service here if running
+ if [ "$(vercmp "$2" 6.05)" -lt 0 ]; then
+ _daemon_refresh
+ fi
+
+ # version 6.10 relocates pid file
+ if [ "$(vercmp "$2" 6.10)" -lt 0 ]; then
+ _daemon_refresh
+ fi
+
+ # version 6.11 modified services
+ if [ "$(vercmp "$2" 6.11)" -lt 0 ]; then
+ _daemon_refresh
+ fi
+
+ # version 6.14 modified services
+ if [ "$(vercmp "$2" 6.14)" -lt 0 ]; then
+ _daemon_refresh
+ fi
+}
+
+pre_remove() {
+ for user in $users; do
+ if _psd_running_for_user "$user"; then
+ _stop_psd_for_user "$user"
+ fi
+ done
+}
+
+_daemon_refresh() {
+ for i in $users; do
+ su "$i" -s /bin/sh -c 'XDG_RUNTIME_DIR=/run/user/$UID systemctl --user daemon-reload'
+ done
+}
+
+_psd_running_for_user() {
+ running="$(su "$1" -s /bin/sh -c 'XDG_RUNTIME_DIR=/run/user/$UID systemctl --user is-active psd')"
+ if [[ "$running" = "active" ]]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+_stop_psd_for_user() {
+ echo "In order to preserve the browser profiles, all psd user services will be stopped."
+ echo "Any running and managed browsers will be exited."
+ su "$1" -s /bin/sh -c 'XDG_RUNTIME_DIR=/run/user/$UID systemctl --user stop psd.service'
+}
+
+_diff_recommendation() {
+ echo 'It is recommend to diff /usr/share/psd/psd.conf against ~/.config/psd/psd.conf'
+}
More information about the arch-commits
mailing list