]>
git.madduck.net Git - code/myrepos.git/blobdiff - mr
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
=head1 NAME
mr - a Multiple Repository management tool
=head1 NAME
mr - a Multiple Repository management tool
use warnings;
use strict;
use Getopt::Long;
use warnings;
use strict;
use Getopt::Long;
-my (@failed, @successful , @skipped);
+my (@failed, @ok , @skipped);
foreach my $repo (@repos) {
action($action, @$repo);
}
foreach my $repo (@repos) {
action($action, @$repo);
}
my ($action, $dir, $topdir, $subdir) = @_;
my $lib= exists $config{$topdir}{$subdir}{lib} ?
my ($action, $dir, $topdir, $subdir) = @_;
my $lib= exists $config{$topdir}{$subdir}{lib} ?
- push @successful , $dir;
my $count=shift;
my $singular=shift;
my $plural=shift;
my $count=shift;
my $singular=shift;
my $plural=shift;
return "$count ".($count > 1 ? $plural : $singular);
}
return;
return "$count ".($count > 1 ? $plural : $singular);
}
return;
-}
-if (! @successful && ! @failed && ! @skipped) {
+} #}}}
+if (! @ok && ! @failed && ! @skipped) {
die "mr $action: no repositories found to work on\n";
}
print "mr $action: finished (".join("; ",
die "mr $action: no repositories found to work on\n";
}
print "mr $action: finished (".join("; ",
- showstat($#successful+1, "successful", "successful "),
+ showstat($#ok+1, "ok", "ok "),
showstat($#failed+1, "failed", "failed"),
showstat($#skipped+1, "skipped", "skipped"),
).")\n";
if (@failed) {
exit 1;
}
showstat($#failed+1, "failed", "failed"),
showstat($#skipped+1, "skipped", "skipped"),
).")\n";
if (@failed) {
exit 1;
}
-elsif (! @successful && @skipped) {
+elsif (! @ok && @skipped) {
exit 1;
}
exit 0;
my %loaded;
exit 1;
}
exit 0;
my %loaded;
while (@lines) {
$_=shift @lines;
while (@lines) {
$_=shift @lines;
chomp;
next if /^\s*\#/ || /^\s*$/;
if (/^\[([^\]]*)\]\s*$/) {
chomp;
next if /^\s*\#/ || /^\s*$/;
if (/^\[([^\]]*)\]\s*$/) {
# continued value
while (@lines && $lines[0]=~/^\s(.+)/) {
shift(@lines);
# continued value
while (@lines && $lines[0]=~/^\s(.+)/) {
shift(@lines);
$value.="\n$1";
chomp $value;
}
$value.="\n$1";
chomp $value;
}
- die "$f line $. : parse error\n";
+ die "$f line $line : parse error\n";
}
}
foreach (@toload) {
loadconfig($_);
}
}
}
foreach (@toload) {
loadconfig($_);
}
my $f=shift;
# the section to modify or add
my $targetsection=shift;
my $f=shift;
# the section to modify or add
my $targetsection=shift;
open(my $out, ">", $f) || die "mr: write $f: $!\n";
print $out @out;
close $out;
open(my $out, ">", $f) || die "mr: write $f: $!\n";
print $out @out;
close $out;
# Finally, some useful actions that mr knows about by default.
# These can be overridden in ~/.mrconfig.
# Finally, some useful actions that mr knows about by default.
# These can be overridden in ~/.mrconfig.
__DATA__
[ALIAS]
co = checkout
__DATA__
[ALIAS]
co = checkout
ed = echo "A horse is a horse, of course, of course.."
T = echo "I pity the fool."
ed = echo "A horse is a horse, of course, of course.."
T = echo "I pity the fool."