]>
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:
my %knownactions;
my %alias;
my (@ok, @failed, @skipped);
my %knownactions;
my %alias;
my (@ok, @failed, @skipped);
if ($ret >> 8 != 0) {
print STDERR "mr $action: command failed\n";
if (-e "$ENV{HOME}/.mrlog" && $action ne 'remember') {
if ($ret >> 8 != 0) {
print STDERR "mr $action: command failed\n";
if (-e "$ENV{HOME}/.mrlog" && $action ne 'remember') {
- @ARGV=(@SWITCHES, $action);
+ # recreate original command line to
+ # remember, and avoid recursing
+ @ARGV=('-n', $action, @ARGV);
action("remember", $dir, $topdir, $subdir);
}
}
action("remember", $dir, $topdir, $subdir);
}
}
elsif ($action eq 'register') {
register(@ARGV);
}
elsif ($action eq 'register') {
register(@ARGV);
}
- elsif ($action eq 'remember') {
+ elsif ($action eq 'remember' ||
+ $action eq 'offline' ||
+ $action eq 'online') {
my @repos=selectrepos;
action($action, @{$repos[0]}) if @repos;
exit 0;
my @repos=selectrepos;
action($action, @{$repos[0]}) if @repos;
exit 0;
} #}}}
sub getopts { #{{{
} #}}}
sub getopts { #{{{
Getopt::Long::Configure("bundling", "no_permute");
my $result=GetOptions(
"d|directory=s" => sub { $directory=abs_path($_[1]) },
Getopt::Long::Configure("bundling", "no_permute");
my $result=GetOptions(
"d|directory=s" => sub { $directory=abs_path($_[1]) },
die("Usage: mr [-d directory] action [params ...]\n".
"(Use mr help for man page.)\n");
}
die("Usage: mr [-d directory] action [params ...]\n".
"(Use mr help for man page.)\n");
}
+
+ $ENV{MR_SWITCHES}="";
+ foreach my $option (@saved) {
+ last if $option eq $ARGV[0];
+ $ENV{MR_SWITCHES}.="$option ";
+ }
loadconfig($ENV{MR_CONFIG});
#use Data::Dumper; print Dumper(\%config);
loadconfig($ENV{MR_CONFIG});
#use Data::Dumper; print Dumper(\%config);
- my $action=shift @ARGV;
- @SWITCHES = grep { $_ ne $action } @SWITCHES;
- $action=expandaction($action);
-
+ my $action=expandaction(shift @ARGV);
dispatch($action);
showstats($action);
dispatch($action);
showstats($action);
- if [ -e ~/.mrlog ]; then
+ if [ -s ~/.mrlog ]; then
info "running offline commands"
mv -f ~/.mrlog ~/.mrlog.old
info "running offline commands"
mv -f ~/.mrlog ~/.mrlog.old
- if ! sh ~/.mrlog.old; then
- error "offline commands failed; left in ~/.mrlog.old"
+ if ! sh -e ~/.mrlog.old; then
+ error "offline command failed; left in ~/.mrlog.old"
fi
rm -f ~/.mrlog.old
else
fi
rm -f ~/.mrlog.old
else
info "offline mode enabled"
remember =
info "remembering command: 'mr $@'"
info "offline mode enabled"
remember =
info "remembering command: 'mr $@'"
- command="mr -d '$(pwd)'"
+ command="mr -d '$(pwd)' $MR_SWITCHES "
for w in "$@"; do
command="$command '$w'"
done
for w in "$@"; do
command="$command '$w'"
done