conflink detect systemd changes, better btrbk for roaming laptops
authorIan Kelling <ian@iankelling.org>
Sat, 19 Oct 2019 17:37:56 +0000 (13:37 -0400)
committerIan Kelling <ian@iankelling.org>
Sat, 19 Oct 2019 17:37:56 +0000 (13:37 -0400)
btrbk-run
conflink

index bfb2080778699b17b816737170a2c7a33cf7f1eb..10bd6382c65df24a4ec1efe35a45270e70ad9005 100644 (file)
--- a/btrbk-run
+++ b/btrbk-run
@@ -138,9 +138,21 @@ if [[ ! -v targets && ! $source ]]; then
     echo "MAIL_HOST=$MAIL_HOST, nothing to do"
     exit 0
   fi
+
+  at_work=false
+
   case $HOSTNAME in
-    kw|x2)
-      if ping -q -c1 -w1 iank.vpn.office.fsf.org &>/dev/null; then
+    kw)
+      at_work=true
+      ;;&
+    x2|x3)
+      if ping -q -c1 -w1 hal.office.fsf.org \
+              && ip n show 192.168.0.26 | grep . &>/dev/null; then
+      at_work=true
+      fi
+      ;;&
+    kw|x2|x3)
+      if $at_work && ping -q -c1 -w1 iank.vpn.office.fsf.org &>/dev/null; then
         home=iank.vpn.office.fsf.org
       else
         home=b8.nz
@@ -149,12 +161,9 @@ if [[ ! -v targets && ! $source ]]; then
     kw)
       targets=($home x2)
       ;;
-    x2)
+    x2|x3)
       targets=($home kw)
       ;;
-    x3)
-      targets=($home)
-      ;;
     tp)
       # kd disabled temporarily while its hot and i plan to work on it.
       #targets=(frodo kd)
index fdd3bd6072e07c25d802e132f0a828abb9605230..aecd0377119a99daf04b7d0e497e65c46f729de0 100755 (executable)
--- a/conflink
+++ b/conflink
@@ -66,13 +66,19 @@ subdir-link-r() {
 }
 
 
-
 common-file-setup() {
-  local dir fs x f
+  local dir fs x f systemd_reload
+  systemd_reload=false
   for dir in "$@"; do
     fs=$dir/filesystem
     if [[ -e $fs && $user =~ ^iank?$ ]]; then
+      # this could be done with rsync, something like this,
+      # but I haven't looked at the symlinks.
+      # s rsync -n -ahviSAXPH --specials --devices --chown=root:root --chmod=g-s $fs /
       # note, symlinks get resolved, not copied.
+      if s tar --mode=g-s --owner=0 --group=0 -cz -C $fs . | s tar -dz -C / | grep /etc/systemd &>/dev/null; then
+        systemd_reload=true
+      fi
       s tar --mode=g-s --owner=0 --group=0 -cz -C $fs . | s tar -xz -C /
     fi
 
@@ -83,6 +89,9 @@ common-file-setup() {
     (( ${#x[@]} >= 1 )) || continue
     m lnf ${x[@]} ~
   done
+  if $systemd_reload; then
+    m s systemctl daemon-reload
+  fi
 }
 
 user=$(id -un)