[arch-commits] Commit in (5 files)
David Runge
dvzrv at archlinux.org
Fri Feb 14 10:58:13 UTC 2020
Date: Friday, February 14, 2020 @ 10:58:12
Author: dvzrv
Revision: 570989
Adding profile-sync-daemon from the AUR.
Added:
profile-sync-daemon/
profile-sync-daemon/repos/
profile-sync-daemon/trunk/
profile-sync-daemon/trunk/PKGBUILD
profile-sync-daemon/trunk/profile-sync-daemon.install
-----------------------------+
PKGBUILD | 26 +++++++
profile-sync-daemon.install | 156 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 182 insertions(+)
Added: profile-sync-daemon/trunk/PKGBUILD
===================================================================
--- profile-sync-daemon/trunk/PKGBUILD (rev 0)
+++ profile-sync-daemon/trunk/PKGBUILD 2020-02-14 10:58:12 UTC (rev 570989)
@@ -0,0 +1,26 @@
+# 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=('findutils' 'procps-ng' 'rsync' 'systemd')
+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}"
+}
Added: profile-sync-daemon/trunk/profile-sync-daemon.install
===================================================================
--- profile-sync-daemon/trunk/profile-sync-daemon.install (rev 0)
+++ profile-sync-daemon/trunk/profile-sync-daemon.install 2020-02-14 10:58:12 UTC (rev 570989)
@@ -0,0 +1,156 @@
+## 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