[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