X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/1cccf09a6874e53fb8c28bf5d89b0b51c917942a..40e3d94eed1a9bef9da8d02170a9d9f09d91620b:/mr?ds=sidebyside diff --git a/mr b/mr index 620ad7f..7224a04 100755 --- a/mr +++ b/mr @@ -787,6 +787,15 @@ sub repolist { } @list; } +sub repodir { + my $repo=shift; + my $topdir=$repo->{topdir}; + my $subdir=$repo->{subdir}; + my $ret=($subdir =~/^\//) ? $subdir : $topdir.$subdir; + $ret=~s/\/\.$//; + return $ret; +} + # figure out which repos to act on sub selectrepos { my @repos; @@ -795,7 +804,7 @@ sub selectrepos { my $subdir=$repo->{subdir}; next if $subdir eq 'DEFAULT'; - my $dir=($subdir =~/^\//) ? $subdir : $topdir.$subdir; + my $dir=repodir($repo); my $d=$directory; $dir.="/" unless $dir=~/\/$/; $d.="/" unless $d=~/\/$/; @@ -815,7 +824,7 @@ sub selectrepos { my $subdir=$repo->{subdir}; next if $subdir eq 'DEFAULT'; - my $dir=($subdir =~/^\//) ? $subdir : $topdir.$subdir; + my $dir=repodir($repo); my $d=$directory; $dir.="/" unless $dir=~/\/$/; $d.="/" unless $d=~/\/$/; @@ -1028,6 +1037,12 @@ sub loadconfig { } } $section=expandenv($section) if $trusted; + if ($section ne 'ALIAS' && + ! exists $config{$dir}{$section} && + exists $config{$dir}{DEFAULT}) { + # copy in defaults + $config{$dir}{$section}={ %{$config{$dir}{DEFAULT}} }; + } } elsif (/^(\w+)\s*=\s*(.*)/) { my $parameter=$1; @@ -1064,12 +1079,6 @@ sub loadconfig { if (! defined $section) { die "$f line $.: parameter ($parameter) not in section\n"; } - if ($section ne 'ALIAS' && - ! exists $config{$dir}{$section} && - exists $config{$dir}{DEFAULT}) { - # copy in defaults - $config{$dir}{$section}={ %{$config{$dir}{DEFAULT}} }; - } if ($section eq 'ALIAS') { $alias{$parameter}=$value; } @@ -1350,7 +1359,7 @@ sub bootstrap { eval q{use File::Temp}; die $@ if $@; my $tmpconfig=File::Temp->new(); - my @curlargs = ("curl", "-A", "mr", "-s", $url, "-o", $tmpconfig); + 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;