X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/1cccf09a6874e53fb8c28bf5d89b0b51c917942a..01faa6757d7012e3b9126cc02e8ac10502864526:/mr?ds=sidebyside

diff --git a/mr b/mr
index 620ad7f..1f01803 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;
@@ -1538,10 +1547,10 @@ lib =
 		fi
 		delta=`perl -wle 'print -f shift() ? int((-M _) * 24) : 9999' "$flagfile"`
 		if [ "$delta" -lt "$2" ]; then
-			exit 0
+			return 1
 		else
 			touch "$flagfile"
-			exit 1
+			return 0
 		fi
 	}