| 
														
															@@ -105,22 +105,27 @@ my %update_method = ( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	'src-svn' => { 
														 | 
														
														 | 
														
															 	'src-svn' => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		'init'		=> "svn checkout '%s' '%s'", 
														 | 
														
														 | 
														
															 		'init'		=> "svn checkout '%s' '%s'", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		'update'	=> "svn update", 
														 | 
														
														 | 
														
															 		'update'	=> "svn update", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		'controldir'	=> ".svn"}, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'controldir'	=> ".svn", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'revision'	=> "svn info | grep 'Revision' | cut -d ' ' -f 2 | tr -d '\n'"}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	'src-cpy' => { 
														 | 
														
														 | 
														
															 	'src-cpy' => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		'init'		=> "cp -Rf '%s' '%s'", 
														 | 
														
														 | 
														
															 		'init'		=> "cp -Rf '%s' '%s'", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		'update'	=> ""}, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'update'	=> "", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'revision'	=> "echo -n 'local'"}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	'src-link' => { 
														 | 
														
														 | 
														
															 	'src-link' => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		'init'		=> "ln -s '%s' '%s'", 
														 | 
														
														 | 
														
															 		'init'		=> "ln -s '%s' '%s'", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		'update'	=> ""}, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'update'	=> "", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'revision'	=> "echo -n 'local'"}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	'src-git' => { 
														 | 
														
														 | 
														
															 	'src-git' => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		'init'		=> "git clone --depth 1 '%s' '%s'", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		'init_branch'	=> "git clone --depth 1 --branch '%s' '%s' '%s'", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'init'		=> "git clone '%s' '%s'", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'init_branch'	=> "git clone --branch '%s' '%s' '%s'", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		'update'	=> "git pull", 
														 | 
														
														 | 
														
															 		'update'	=> "git pull", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		'controldir'	=> ".git"}, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'controldir'	=> ".git", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'revision'	=> "git show --abbrev-commit HEAD | head -n 1 | cut -d ' ' -f 2 | tr -d '\n'"}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	'src-gitsvn' => { 
														 | 
														
														 | 
														
															 	'src-gitsvn' => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                'init'          => "git svn clone -r HEAD '%s' '%s'", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                'update'        => "git svn rebase", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                'controldir'    => ".git"}, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'init'	=> "git svn clone -r HEAD '%s' '%s'", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'update'	=> "git svn rebase", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'controldir'	=> ".git", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'revision'	=> "git show --abbrev-commit HEAD | head -n 1 | cut -d ' ' -f 2 | tr -d '\n'"}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	'src-bzr' => { 
														 | 
														
														 | 
														
															 	'src-bzr' => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		'init'		=> "bzr checkout --lightweight '%s' '%s'", 
														 | 
														
														 | 
														
															 		'init'		=> "bzr checkout --lightweight '%s' '%s'", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		'update'	=> "bzr update", 
														 | 
														
														 | 
														
															 		'update'	=> "bzr update", 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -249,14 +254,31 @@ sub list_feed { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 sub list { 
														 | 
														
														 | 
														
															 sub list { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	my %opts; 
														 | 
														
														 | 
														
															 	my %opts; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	getopts('r:sh', \%opts); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	getopts('r:d:sh', \%opts); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	if ($opts{h}) { 
														 | 
														
														 | 
														
															 	if ($opts{h}) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		usage(); 
														 | 
														
														 | 
														
															 		usage(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		return 0; 
														 | 
														
														 | 
														
															 		return 0; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	if ($opts{s}) { 
														 | 
														
														 | 
														
															 	if ($opts{s}) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		foreach my $feed (@feeds) { 
														 | 
														
														 | 
														
															 		foreach my $feed (@feeds) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			printf "\%-32s\tURL: %s\n", $feed->[1], join(", ", @{$feed->[2]}); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			my $localpath = "./feeds/$feed->[1]"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			my $m = $update_method{$feed->[0]}; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			my $revision; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			if( !$m->{'revision'} ) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				$revision = "X"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			elsif( $m->{'controldir'} && -d "$localpath/$m->{'controldir'}" ) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				$revision = `cd '$localpath'; $m->{'revision'}`; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				$revision = "local"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			if ($opts{d}) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				printf "%s%s%s%s%s%s%s\n", $feed->[1], $opts{d}, $feed->[0], $opts{d}, $revision, $opts{d}, join(", ", @{$feed->[2]}); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				printf "\%-8s \%-8s \%-8s \%s\n", $feed->[1], $feed->[0], $revision, join(", ", @{$feed->[2]}); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		} 
														 | 
														
														 | 
														
															 		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		return 0; 
														 | 
														
														 | 
														
															 		return 0; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -564,10 +586,11 @@ sub usage() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 Usage: $0 <command> [options] 
														 | 
														
														 | 
														
															 Usage: $0 <command> [options] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 Commands: 
														 | 
														
														 | 
														
															 Commands: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	list [options]: List feeds and their content 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	list [options]: List feeds, their content and revisions (if installed) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	Options: 
														 | 
														
														 | 
														
															 	Options: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	    -s :           List of feed names and their URL. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	    -r <feedname>: List packages of specified feed. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	    -s :            List of feed names and their URL. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	    -r <feedname>:  List packages of specified feed. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	    -d <delimiter>: Use specified delimiter to distinguish rows (default: spaces) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	install [options] <package>: Install a package 
														 | 
														
														 | 
														
															 	install [options] <package>: Install a package 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	Options: 
														 | 
														
														 | 
														
															 	Options: 
														 |