# HG changeset patch # User Tero Marttila # Date 1332238756 -7200 # Node ID baae373b787ebe3b6db2dac2027f86255bc605bd # Parent d99ebc15833d125280b97d9812efe0be3677cfdd update: log_skip; simplify update_serial args; check_update tests for deps diff -r d99ebc15833d -r baae373b787e bin/update --- a/bin/update Tue Mar 20 12:08:38 2012 +0200 +++ b/bin/update Tue Mar 20 12:19:16 2012 +0200 @@ -43,7 +43,8 @@ LOG_WARN=y LOG=y -LOG_INFO= +LOG_INFO=y +LOG_SKIP= LOG_DEBUG= LOG_CMD= @@ -103,7 +104,7 @@ LOG_WARN= ;; - v) LOG_INFO=y ;; + v) LOG_SKIP=y ;; D) LOG_DEBUG=y LOG_INFO=y @@ -144,18 +145,18 @@ local code=$1; shift if [ $IS_TTY ]; then - echo $'\e[0;'${code}'m'"$*"$'\e[00m' >&2 + echo $'\e['${code}'m'"$*"$'\e[00m' >&2 else echo "$*" >&2 fi } function log_error { - log_color 31 "$*" + log_color '31' "$*" } function log_warn { - [ $LOG_WARN ] && log_color 33 "$*" || true + [ $LOG_WARN ] && log_color '33' "$*" || true } function log { @@ -163,7 +164,11 @@ } function log_info { - [ $LOG_INFO ] && log_color 36 " $*" || true + [ $LOG_INFO ] && log_color '36' " $*" || true +} + +function log_skip { + [ $LOG_SKIP ] && log_color '1;34' " $*" || true } function log_debug { @@ -224,6 +229,15 @@ return ${PIPESTATUS[0]} } +function ensure_dir { + local dir=$1 + + if [ ! -d $ROOT/$dir ]; then + log_warn "Creating output dir: $dir" + cmd mkdir $ROOT/$dir + fi +} + function abspath () { echo "$ROOT/$1" } @@ -286,8 +300,10 @@ [ $update ] && continue # check + if [ ! -e $ROOT/$dep ]; then + fail "$dst: Missing source: $dep" - if [ $ROOT/$dst -ot $ROOT/$dep ]; then + elif [ $ROOT/$dst -ot $ROOT/$dep ]; then log_debug " changed: $dep" update=y fi @@ -329,6 +345,7 @@ function update { local dst=$1; shift; + local msg=$1; shift local sep= local dep=() @@ -348,7 +365,14 @@ [ ! $sep ] && fail "Invalid args given: $@" - check_update $dst "${dep[@]}" && do_update $dst "${cmd[@]}" || true + if check_update $dst "${dep[@]}"; then + log_info "$msg..." + + do_update $dst "${cmd[@]}" + else + log_debug "$msg: not changed" + + fi } function check_link { @@ -371,15 +395,13 @@ local zone=$1 local base=$2 - log_debug "base: $base" - if check_update $zone $base; then log_info "Copying hosts $zone <- $base..." do_update $zone \ cat $ROOT/$base else - log_info "Copying hosts $zone <- $base: not changed" + log_skip "Copying hosts $zone <- $base: not changed" fi } @@ -394,7 +416,7 @@ do_update $zone \ $BIN/process-zone $PROCESS_ARGS $ROOT/$base "$@" else - log_info "Generating hosts $zone <- $base: not changed" + log_skip "Generating hosts $zone <- $base: not changed" fi } @@ -404,13 +426,15 @@ local zone=$1; shift local serial=$SERIALS/$zone.serial - + + # read local old=$(test -e $ROOT/$serial && cat $ROOT/$serial || echo '') log_info "Updating $serial..." - cmd $BIN/update-serial $* $ROOT/$serial + cmd $BIN/update-serial $ROOT/$serial + # read local new=$(cat $ROOT/$serial) log_debug " $old -> $new" @@ -429,7 +453,7 @@ do_link $lnk $tgt else - log_info "Linking $lnk -> $tgt: not changed" + log_skip "Linking $lnk -> $tgt: not changed" fi } @@ -445,9 +469,10 @@ if check_update $out $src; then log_info "Copying $out <- $src..." - do_update $out cat $ROOT/$src + do_update $out \ + cat $ROOT/$src else - log_info "Copying $out <- $src: not changed" + log_skip "Copying $out <- $src: not changed" fi } @@ -459,14 +484,10 @@ local out=$ZONES/$view/$zone local src=$DATA/$base.zone local lnk=$ZONES/$base + local serial=$SERIALS/$base.serial - log_debug "$out: from src $src" - - if [ ! -e $src ]; then - fail "Missing source: $src" - - elif check_update $out $src $serial; then + if check_update $out $src $serial; then log_info "Generating $out <- $src..." do_update $out \ @@ -475,7 +496,7 @@ --expand zones=$(abspath $ZONES) \ --expand view=$view else - log_info "Generating $out <- $src: not changed" + log_skip "Generating $out <- $src: not changed" fi } @@ -485,19 +506,18 @@ local base=${3:-$zone} local out=$ZONES/$view/$zone - + + # find tgt for tgt in $ZONES/$view/$base $ZONES/common/$base; do [ $tgt != $out ] && [ -e $tgt ] && break done - log_debug "$out: from " - if check_link $out $tgt; then log_info "Linking $out -> $tgt..." do_link $out $tgt else - log_info "Linking $out -> $tgt: not changed" + log_skip "Linking $out -> $tgt: not changed" fi } @@ -508,7 +528,7 @@ local cmd=($BIN/process-zone $PROCESS_ARGS $ROOT/$hosts --check-hosts "$@") if "${cmd[@]}" -q; then - log_info "Check $hosts: OK" + log_skip "Check $hosts: OK" else log_error " Check $hosts: Failed" @@ -530,7 +550,7 @@ # test # XXX: checkzone is very specific about the order of arguments, -q must be first if $NAMED_CHECKZONE -q $origin $ROOT/$src; then - log_info "Check $src ($origin): OK" + log_skip "Check $src ($origin): OK" else log_error " Check $src ($origin): Failed:" @@ -561,15 +581,6 @@ fi } -function ensure_dir { - local dir=$1 - - if [ ! -d $ROOT/$dir ]; then - log_warn "Creating output dir: $dir" - cmd mkdir $ROOT/$dir - fi -} - function main { # test tty [ -t 1 ] && IS_TTY=y