Merge remote-tracking branch 'origin/master' into staging
[mirror/dsa-puppet.git] / modules / roles / files / static-mirroring / static-update-component
index 2cae0b8..455d17d 100755 (executable)
@@ -27,6 +27,11 @@ usage() {
 }
 
 componentlist=/etc/static-components.conf
+. /etc/staticsync.conf
+if ! [ -n "$staticuser" ]; then
+  echo >&2 "staticuser not configured!"
+  exit 1
+fi
 
 if [ "$#" = 1 ]; then
   component="$1"
@@ -41,12 +46,12 @@ if [ "${component%/*}" != "$component" ] ; then
 fi
 
 thishost=$(hostname -f)
-masterhost="$(awk -v component="$component" '$2 == component {print $1; exit}' "$componentlist")"
-srchost="$(awk -v component="$component" '$2 == component {print $3; exit}' "$componentlist")"
-srcdir="$(awk -v component="$component" '$2 == component {print $4; exit}' "$componentlist")"
+masterhost="$(awk -v component="$component" '!/^ *(#|$)/ && $2 == component {print $1; exit}' "$componentlist")"
+srchost="$(awk -v component="$component" '!/^ *(#|$)/ && $2 == component {print $3; exit}' "$componentlist")"
+srcdir="$(awk -v component="$component" '!/^ *(#|$)/ && $2 == component {print $4; exit}' "$componentlist")"
 inextralist="$(
                awk -v component="$component" -v host="$thishost" '
-                 $2 == component {
+                 !/^ *(#|$)/ && $2 == component {
                    split($5,extra,",")
                    for (i in extra) {
                      if (host == extra[i]) {
@@ -72,10 +77,10 @@ if [ "$srchost" = "$thishost" ] && ! [ -d "$srcdir" ]; then
   exit 1
 fi
 
-if [ "`id -nu`" != "staticsync" ]; then
-  sudo -u staticsync static-update-component "$@"
+if [ "`id -nu`" != "$staticuser" ]; then
+  sudo -u "$staticuser" static-update-component "$@"
 else
-  ssh -o AddressFamily=inet -t -o ServerAliveInterval=300 -o PreferredAuthentications=publickey "$masterhost" static-master-update-component "$component"
+  ssh -o AddressFamily=inet -t -t -o ServerAliveInterval=300 -o PreferredAuthentications=publickey "$masterhost" static-master-update-component "$component"
 fi
 
 # vim:set et: