or even to add other commands for 'mr online' to run. If the file is
present, mr assumes it is in offline mode.
-=head "UNTRUSTED MRCONFIG FILES"
+=head1 "UNTRUSTED MRCONFIG FILES"
Since mrconfig files can contain arbitrary shell commands, they can do
anything. This flexability is good, but it also allows a malicious mrconfig
if ($ret == OK) {
push @ok, $dir;
- print "\n";
+ print "\n" unless $quiet;
}
elsif ($ret == FAILED) {
if ($interactive) {
chdir($dir) unless $no_chdir;
print STDERR "mr: Starting interactive shell. Exit shell to continue.\n";
- system((getpwuid($<))[8]);
+ system((getpwuid($<))[8], "-i");
}
push @failed, $dir;
- print "\n";
+ print "\n" unless $quiet;
}
elsif ($ret == SKIPPED) {
push @skipped, $dir;
die $@ if $@;
my $tmpconfig=File::Temp->new();
if (system("curl", "-A", "mr", "-s", $url, "-o", $tmpconfig) != 0) {
- die "mr: download of $url failed\n";
+ die "mr bootstrap: download of $url failed\n";
}
if (! -e $dir) {
if exists $config{$topdir}{"."}{"checkout"};
if (-e ".mrconfig") {
- print STDERR "mr: .mrconfig file already exists, not overwriting with $url\n";
+ print STDERR "mr bootstrap: .mrconfig file already exists, not overwriting with $url\n";
}
else {
- rename($tmpconfig, ".mrconfig") || die "rename: $!";
+ eval q{use File::Copy};
+ die $@ if $@;
+ move($tmpconfig, ".mrconfig") || die "rename: $!";
}
exec("mr $ENV{MR_SWITCHES} -c .mrconfig checkout");
darcs_trusted_checkout = darcs get $url $repo
git_bare_trusted_checkout = git clone --bare $url $repo
+
help =
+ case `uname -s` in
+ SunOS)
+ SHOWMANFILE="man -f"
+ ;;
+ Darwin)
+ SHOWMANFILE="man"
+ ;;
+ *)
+ SHOWMANFILE="man -l"
+ ;;
+ esac
if [ ! -e "$MR_PATH" ]; then
error "cannot find program path"
fi
tmp=$(mktemp -t mr.XXXXXXXXXX) || error "mktemp failed"
trap "rm -f $tmp" exit
pod2man -c mr "$MR_PATH" > "$tmp" || error "pod2man failed"
- man -l "$tmp" || error "man failed"
+ $SHOWMANFILE "$tmp" || error "man failed"
list = true
config =
bootstrap =