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 <dv...@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'
+}

Reply via email to