iankelling.org
/
git
/
distro-setup
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
minor fixes
[distro-setup]
/
conflink
diff --git
a/conflink
b/conflink
index 0dffc229e80b1b662c75fc8a0a6098008efebb88..55d7a02489dc6b1d1ae3cbf7d0f3152778d73215 100755
(executable)
--- a/
conflink
+++ b/
conflink
@@
-1,6
+1,9
@@
#!/bin/bash
source /a/bin/errhandle/err
#!/bin/bash
source /a/bin/errhandle/err
+errcatch-cleanup() {
+ echo 1 >~/.local/conflink
+}
usage() {
usage() {
@@
-21,7
+24,23
@@
m() {
s() { sudo "$@"; }
lnf() { /a/exe/lnf "$@"; }
s() { sudo "$@"; }
lnf() { /a/exe/lnf "$@"; }
-if [[ $1 == -f ]]; then
+
+# 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
+ fast=true
+ shift
+elif
+ [[ $1 ]]; then
+ echo "error: unrecognized arguments" >&2
+ exit 0
+fi
+
+if $fast; then
lnf() { ln -sf "$@"; }
fi
lnf() { ln -sf "$@"; }
fi
@@
-59,14
+78,23
@@
subdir-link-r() {
}
}
-
common-file-setup() {
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
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.
# note, symlinks get resolved, not copied.
- s tar --mode=g-s --owner=0 --group=0 -cz -C $fs . | s tar -xz -C /
+ if s tar --anchored \
+ --exclude etc/dovecot/users \
+ --exclude etc/exim4/passwd \
+ --exclude etc/exim4/*.pem \
+ --mode=g-s --owner=0 --group=0 -cz -C $fs . | s tar -dz -C / | grep /etc/systemd &>/dev/null; then
+ systemd_reload=true
+ fi
fi
if [[ -e $dir/subdir_files ]]; then
fi
if [[ -e $dir/subdir_files ]]; then
@@
-76,6
+104,9
@@
common-file-setup() {
(( ${#x[@]} >= 1 )) || continue
m lnf ${x[@]} ~
done
(( ${#x[@]} >= 1 )) || continue
m lnf ${x[@]} ~
done
+ if $systemd_reload; then
+ m s systemctl daemon-reload
+ fi
}
user=$(id -un)
}
user=$(id -un)
@@
-133,6
+164,13
@@
case $user in
fi
m sudo -H -u user2 "${BASH_SOURCE[0]}"
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[@]}
;;
user2)
m common-file-setup ${c_dirs[@]}