From: Ian Kelling Date: Sat, 19 Oct 2019 17:37:56 +0000 (-0400) Subject: conflink detect systemd changes, better btrbk for roaming laptops X-Git-Url: https://iankelling.org/git/?p=distro-setup;a=commitdiff_plain;h=36f92d5af79d7934e953515f58af1c86d6838599 conflink detect systemd changes, better btrbk for roaming laptops --- diff --git a/btrbk-run b/btrbk-run index bfb2080..10bd638 100644 --- 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) diff --git a/conflink b/conflink index fdd3bd6..aecd037 100755 --- 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)