From: Joey Hess Date: Thu, 18 Oct 2007 19:43:09 +0000 (-0400) Subject: * Allow for more complex deleted tests, such as marking a repo deleted on X-Git-Url: https://git.madduck.net/code/myrepos.git/commitdiff_plain/5e6baa9997df5897ee4e46eb6ba3473761deac1b?ds=sidebyside;hp=e504bacb221cb290631f57f31fda581fa39ad6f4 * Allow for more complex deleted tests, such as marking a repo deleted on some hosts, while not on others. --- diff --git a/debian/changelog b/debian/changelog index e82b102..dcda74f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,8 +7,10 @@ mr (0.4) UNRELEASED; urgency=low * Output list of failed repos to stderr when -s is used. * Fix a bug caused by a stupid typo. * Add the -n switch, for disabling recursion. + * Allow for more complex deleted tests, such as marking a repo deleted on + some hosts, while not on others. - -- Joey Hess Thu, 18 Oct 2007 15:27:01 -0400 + -- Joey Hess Thu, 18 Oct 2007 15:39:03 -0400 mr (0.3) unstable; urgency=low diff --git a/mr b/mr index 707a9a5..886aa65 100755 --- a/mr +++ b/mr @@ -404,27 +404,29 @@ sub action { #{{{ $config{$topdir}{$subdir}{lib}."\n" : ""; if (exists $config{$topdir}{$subdir}{deleted}) { - if (! -d $dir) { - return; - } - else { - my $test="set -e;".$lib.$config{$topdir}{$subdir}{deleted}; - print "mr $action: running deleted test >>$test<<\n" if $verbose; - my $ret=system($test); - if ($ret != 0) { - if (($? & 127) == 2) { - print STDERR "mr $action: interrupted\n"; - exit 2; - } - elsif ($? & 127) { - print STDERR "mr $action: deleted test received signal ".($? & 127)."\n"; - } + my $test="set -e;".$lib.$config{$topdir}{$subdir}{deleted}; + print "mr $action: running deleted test >>$test<<\n" if $verbose; + my $ret=system($test); + if ($ret != 0) { + if (($? & 127) == 2) { + print STDERR "mr $action: interrupted\n"; + exit 2; } - if ($ret >> 8 == 0) { + elsif ($? & 127) { + print STDERR "mr $action: deleted test received signal ".($? & 127)."\n"; + } + } + if ($ret >> 8 == 0) { + if (-d $dir) { print STDERR "mr error: $dir should be deleted yet still exists\n\n"; push @failed, $dir; return; } + else { + print "mr $action: $dir skipped (as deleted) per config file\n" if $verbose; + push @skipped, $dir; + return; + } } }