X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/41ef92c450379d0aa9573e30a8778f2e1c3e43b1..eabad02ab25169b9658d87fbdebd32a3ac86b317:/mr diff --git a/mr b/mr index 21d2677..2876fbe 100755 --- a/mr +++ b/mr @@ -116,8 +116,10 @@ These commands are also available: =item bootstrap url [directory] -Causes mr to download the url, and use it as a .mrconfig file -to checkout the repositories listed in it, into the specified directory. +Causes mr to download the url, and use it as a .mrconfig file to checkout +the repositories listed in it, into the specified directory. + +To use scp to download, the url may have the form ssh://[user@]host:file The directory will be created if it does not exist. If no directory is specified, the current directory will be used. @@ -1661,11 +1663,18 @@ sub bootstrap { eval q{use File::Temp}; die $@ if $@; my $tmpconfig=File::Temp->new(); - my @curlargs = ("curl", "-A", "mr", "-L", "-s", $url, "-o", $tmpconfig); - push(@curlargs, "-k") if $insecure; - my $curlstatus = system(@curlargs); - die "mr bootstrap: invalid SSL certificate for $url (consider -k)\n" if $curlstatus >> 8 == 60; - die "mr bootstrap: download of $url failed\n" if $curlstatus != 0; + my @downloader; + if ($url =~ m!^ssh://(.*)!) { + @downloader = ("scp", $1, $tmpconfig); + } + else { + @downloader = ("curl", "-A", "mr", "-L", "-s", $url, "-o", $tmpconfig); + push(@downloader, "-k") if $insecure; + } + my $status = system(@downloader); + die "mr bootstrap: invalid SSL certificate for $url (consider -k)\n" + if $downloader[0] eq 'curl' && $status >> 8 == 60; + die "mr bootstrap: download of $url failed\n" if $status != 0; if (! -e $dir) { system("mkdir", "-p", $dir); @@ -1904,7 +1913,7 @@ cvs_status = cvs status "$@" hg_status = hg status "$@" darcs_status = darcs whatsnew -ls "$@" || true fossil_status = fossil changes "$@" -vcsh_status = cd $(vcsh run "$MR_REPO" git config --get core.worktree); vcsh run "$MR_REPO" git status -s "$@" || true +vcsh_status = vcsh run "$MR_REPO" git -c status.relativePaths=false status -s "$@" || true veracity_status = vv status "$@" svn_commit = svn commit "$@"