X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=conflink;h=aecd0377119a99daf04b7d0e497e65c46f729de0;hb=36f92d5af79d7934e953515f58af1c86d6838599;hp=42c811a6437f16b9e195b1fded71eb3516826efe;hpb=313bf2239f766a5a1d060133131b477478873ad7;p=distro-setup diff --git a/conflink b/conflink index 42c811a..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) @@ -140,6 +149,13 @@ case $user in fi m sudo -H -u user2 "${BASH_SOURCE[0]}" + + f=/a/bin/distro-setup/system-status + if [[ -x $f ]]; then + $f _ + fi + echo 0 >~/.local/conflink + ;; user2) m common-file-setup ${c_dirs[@]} @@ -149,8 +165,3 @@ case $user in ;; esac -f=/a/bin/distro-setup/system-status -if [[ -x $f ]]; then - $f _ -fi -echo 0 >~/.local/conflink