| 
					
				 | 
			
			
				@@ -26,47 +26,48 @@ sub readConfig { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	my $gitConfigPath = $path . "/" . ".git/config"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	my $catCmd = findBin("cat",$logger); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	my @configLines = split("\n",shellex("$catCmd $gitConfigPath",$logger)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	# Key is config header, value is hash ref containing config values 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	my %gitConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	my @valueLines; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	my $lineCounter = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	foreach my $line ( @configLines ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		$lineCounter++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		#if ( $line =~ m/\[(.*)\]/ ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if ( $line =~ m/(\[.*\])/ ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if ( $line =~ m/\[(.*)\]/ ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			#$valueLine =~ /\t(.*)\ =\ (.*)$/; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$gitConfig{$1} = $lineCounter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			$gitConfig{$1} = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	my $wcBin = findBin("wc",$logger); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	# TODO: Clean shell call up 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	my $lastLine = shellex("$wcBin -l $gitConfigPath | awk '{print \$1}'",$logger); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	chomp $lastLine; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	my @lineRange = values %gitConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	push(@lineRange, $lastLine); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	my @sortedRange = sort { $a <=> $b } @lineRange; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	my $prevVal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	foreach my $val ( @sortedRange ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		my @stash; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		print "Val is $val\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if ( ! defined $prevVal ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$prevVal = $val; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	# Tag each line with it's heading 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	# Only way I could think of that worked to solve how this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	# There are almost certainly better ways 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	# TODO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	my @taggedLines; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	my $tag = "NULLTAG"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	foreach my $line ( @configLines ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if ( $line =~ m/\[(.*)\]/ ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			$tag = $1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			print "Current var is $val and prevVar $prevVal\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			my $lineDiff = ( $prevVal + 1 ) . "-" . ( $val - 1 ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			my $lineCounter = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			foreach my $line ( @configLines ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				$lineCounter++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				#if ( $lineCounter >= ( $prevVal + 1 ) && $lineCounter <= ( $val - 1 ) ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if ( $lineCounter >= $prevVal && $lineCounter <= $val ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					print "$line\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			my $newLine = $tag . $line; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			push(@taggedLines,$newLine); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	# Get all of the tagged lines into a hash structure. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	foreach my $key ( keys %gitConfig ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		my %stash; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		foreach my $tl ( @taggedLines ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if ( $tl =~ m/^($key)/ ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				$tl =~ s/^($key)//g; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				$tl =~ m/^\t(.*)\ \=\ (.*)$/; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				my $confKey = $1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				my $confVal = $2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				$stash{$confKey} = $confVal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			print "lineDiff of vals is: $lineDiff \n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$prevVal = $val; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$gitConfig{$key} = \%stash; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return %gitConfig; 
			 |