=== modified file 'common.zsh' --- common.zsh 2017-11-30 22:33:29 +0000 +++ common.zsh 2017-11-30 21:32:35 +0000 @@ -93,49 +93,14 @@ done } -is-unchanged() { - local -A previous - local arg - - if ! [[ -f $FILE ]]; then - info "changed: missing $FILE" - return 1 - fi - for arg in "${(s::Q)$(<$FILE)}"; do - if [[ "$arg" != *=* ]]; then - die "Malformed argument: ${(qqq)arg}" - fi - if (( $+previous[${arg%%=*}] )); then - die "Duplicate argument: ${arg%%=*}" - fi - previous[${arg%%=*}]=${arg#*=} - done - if [[ "${(ko)vars}" != "${(ko)previous}" ]]; then - info "changed: different variables" - info "now: ${(ko)vars}" - info "was: ${(ko)previous}" - return 2 - fi - for arg in ${(k)vars}; do - if [[ $arg == __deps__ ]]; then - # TODO - elif [[ $vars[$arg] != $previous[$arg] ]]; then - info "changed: variable $arg" - info "now: ${(qqq)vars[$arg]}" - info "was: ${(qqq)previous[$arg]}" - return 3 - fi - fi - return 0 -} - exit-if-unchanged() { - if ! is-unchanged; then + [[ -f $FILE ]] || return + print-meta > $FILE.new + if cmp >&2 $FILE.new $FILE; then cp $FILE $OUT exit 0 else - print-meta > $FILE.new - [[ -f $FILE ]] && cp $FILE $FILE.prev + cp $FILE $FILE.prev fi }