robustness
[distro-setup] / conflink
index eb94ebe1a9ed1de38ddd8d541f84751e56d81854..5f38a596ab113943664db9dbc3805489704acfe6 100755 (executable)
--- a/conflink
+++ b/conflink
@@ -11,7 +11,8 @@ lnf() { /a/exe/lnf "$@"; }
 
 
 shopt -s nullglob
-shopt -s extglob # note, already set with bash -l
+shopt -s extglob
+shopt -s dotglob
 
 # If we make a link back to the root, we stop going deeper into subdir_files.
 # This makes it so we can do subdir directories.
@@ -46,7 +47,7 @@ common-file-setup() {
   local dir fs x bdir f dst
   for dir in "$@"; do
     fs=$dir/filesystem
-    if [[ -e $fs && $USER =~ ^iank?$ ]]; then
+    if [[ -e $fs && $user =~ ^iank?$ ]]; then
       # note, symlinks get resolved, not copied.
       s tar --mode=g-s --owner=0 --group=0 -cz -C $fs . | s tar -xz -C /
     fi
@@ -60,6 +61,7 @@ common-file-setup() {
   done
 }
 
+user=$(id -un)
 all_dirs=({/a/c,/p/c}{,/machine_specific/$HOSTNAME})
 # note, we assume a group of hosts does not have the
 # same name as a single host, which is no problem on our scale.
@@ -68,7 +70,7 @@ for x in /p/c/machine_specific/*.hosts /a/bin/ds/machine_specific/*.hosts; do
 done
 
 c_dirs=(/a/c{,/machine_specific/$HOSTNAME})
-case $USER in
+case $user in
   iank)
     files=(/p/c/machine_specific/*/filesystem/etc/ssh/*_key
            /p/c/filesystem/etc/openvpn/client/*.key
@@ -111,9 +113,9 @@ case $USER in
 
     sudo bash -c 'shopt -s nullglob; cd /etc/openvpn; for f in client/* server/*; do ln -sf $f .; done'
 
-    m sudo -H -u traci "$BASH_SOURCE"
+    m sudo -H -u user2 "$BASH_SOURCE"
     ;;
-  traci)
+  user2)
     m common-file-setup ${c_dirs[@]}
     ;;
   *)