s() { sudo "$@"; }
lnf() { /a/exe/lnf "$@"; }
+now=$(date +%s)
+
+# error prone
+#f=~/.local/conflink
+# fast=false
+# if [[ -e $f ]] && (( $(stat -c %Y $f) > $now - 60*60*24 )); then
+# fast=true
+# fi
if [[ $1 == -f ]]; then # f for fast
- lnf() { ln -sf "$@"; }
+ fast=true
+ shift
elif
[[ $1 ]]; then
echo "error: unrecognized arguments" >&2
exit 0
fi
+if $fast; then
+ lnf() { ln -sf "$@"; }
+fi
+
shopt -s nullglob
shopt -s extglob
shopt -s dotglob
}
-
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
(( ${#x[@]} >= 1 )) || continue
m lnf ${x[@]} ~
done
+ if $systemd_reload; then
+ m s systemctl daemon-reload
+ fi
}
user=$(id -un)
echo "$0: error: unexpected user"; exit 1
;;
esac
-