[arch-commits] Commit in systemd/trunk (systemd.install)

Dave Reisner dreisner at nymeria.archlinux.org
Sun Jun 1 03:57:18 UTC 2014


    Date: Sunday, June 1, 2014 @ 05:57:18
  Author: dreisner
Revision: 213936

convert install scriptlet to bash, ease maintenance

Modified:
  systemd/trunk/systemd.install

-----------------+
 systemd.install |   82 +++++++++++++++++++++++++++---------------------------
 1 file changed, 42 insertions(+), 40 deletions(-)

Modified: systemd.install
===================================================================
--- systemd.install	2014-06-01 02:30:44 UTC (rev 213935)
+++ systemd.install	2014-06-01 03:57:18 UTC (rev 213936)
@@ -1,7 +1,7 @@
-#!/bin/sh
+#!/bin/bash
 
 sd_booted() {
-  [ -d /run/systemd/system ]
+  [[ -d run/systemd/system ]]
 }
 
 add_privs() {
@@ -13,13 +13,13 @@
 
 add_journal_acls() {
   # ignore errors, since the filesystem might not support ACLs
-  setfacl -Rnm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/ 2>/dev/null
+  setfacl -Rnm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx var/log/journal/ 2>/dev/null
   :
 }
 
 maybe_reexec() {
   # don't reexec on 209-1 upgrade due to large infrastructural changes.
-  if [ "$(vercmp 209-1 "$2")" -eq 1 ]; then
+  if [[ $(vercmp 209-1 "$2") -eq 1 ]]; then
     echo ':: systemd has not been reexecuted. It is recommended that you'
     echo '   reboot at your earliest convenience.'
     return
@@ -32,7 +32,7 @@
 
 _dir_empty() {
   set -- "$1"/*
-  [ ! -e "$1" ] && [ ! -L "$1" ]
+  [[ ! -e $1  && ! -L $1 ]]
 }
 
 post_common() {
@@ -44,20 +44,40 @@
   journalctl --update-catalog
 }
 
-_208_changes() {
+_204_1_changes() {
+  printf '==> The /bin/systemd symlink has been removed. Any references in your\n'
+  printf '    bootloader (or elsewhere) must be updated to /usr/lib/systemd/systemd.\n'
+}
+
+_205_1_changes() {
+  printf '==> systemd 205 restructures the cgroup hierarchy and changes internal\n'
+  printf '    protocols. You should reboot at your earliest convenience.\n'
+}
+
+_206_1_changes() {
+  printf '==> The "timestamp" hook for mkinitcpio no longer exists. If you used\n'
+  printf '    this hook, you must remove it from /etc/mkinitcpio.conf. A "systemd"\n'
+  printf '    hook has been added which provides this functionality, and more.\n'
+}
+
+_208_1_changes() {
   chown root:systemd-journal var/log/journal
   chmod 2755 var/log/journal
 
-  if [ -e var/lib/backlight ] && [ ! -e var/lib/systemd/backlight ]; then
+  if [[ -e var/lib/backlight && ! -e var/lib/systemd/backlight ]]; then
     mv -T var/lib/backlight var/lib/systemd/backlight
   fi
 
-  if [ -e var/lib/random-seed ] && [ ! -e var/lib/systemd/random-seed ]; then
+  if [[ -e var/lib/random-seed && ! -e var/lib/systemd/random-seed ]]; then
     mv -T var/lib/random-seed var/lib/systemd/random-seed
   fi
 }
 
-_209_changes() {
+_208_8_changes() {
+  add_journal_acls
+}
+
+_209_1_changes() {
   # attempt to preserve existing behavior
 
   local old_rule=etc/udev/rules.d/80-net-name-slot.rules
@@ -81,7 +101,7 @@
   fi
 }
 
-_210_changes() {
+_210_1_changes() {
   if sd_booted; then
     # If /etc/systemd/network is non-empty, then this is a 209 user who used
     # networkd. Re-enable it for them.
@@ -108,37 +128,19 @@
 
   maybe_reexec "$@"
 
-  if [ "$(vercmp 204-1 "$2")" -eq 1 ]; then
-    printf '==> The /bin/systemd symlink has been removed. Any references in your\n'
-    printf '    bootloader (or elsewhere) must be updated to /usr/lib/systemd/systemd.\n'
-  fi
+  local v upgrades=(204-1
+                    205-1
+                    206-1
+                    208-1
+                    208-8
+                    209-1
+                    210-1)
 
-  if [ "$(vercmp 205-1 "$2")" -eq 1 ]; then
-    printf '==> systemd 205 restructures the cgroup hierarchy and changes internal\n'
-    printf '    protocols. You should reboot at your earliest convenience.\n'
-  fi
-
-  if [ "$(vercmp 206-1 "$2")" -eq 1 ]; then
-    printf '==> The "timestamp" hook for mkinitcpio no longer exists. If you used\n'
-    printf '    this hook, you must remove it from /etc/mkinitcpio.conf. A "systemd"\n'
-    printf '    hook has been added which provides this functionality, and more.\n'
-  fi
-
-  if [ "$(vercmp 208-1 "$2")" -eq 1 ]; then
-    _208_changes
-  fi
-
-  if [ "$(vercmp 208-8 "$2")" -eq 1 ]; then
-    add_journal_acls
-  fi
-
-  if [ "$(vercmp 209-1 "$2")" -eq 1 ]; then
-    _209_changes
-  fi
-
-  if [ "$(vercmp 210-1 "$2")" -eq 1 ]; then
-    _210_changes
-  fi
+  for v in "${upgrades[@]}"; do
+    if [[ $(vercmp "$v" "$2") -eq 1 ]]; then
+      "_${v//-/_}_changes"
+    fi
+  done
 }
 
 # vim:set ts=2 sw=2 et:




More information about the arch-commits mailing list