add --repository option
authorZhang Qiang <qiang.z.zhang@intel.com>
Mon, 27 Aug 2012 02:58:34 +0000 (10:58 +0800)
committerZhang Qiang <qiang.z.zhang@intel.com>
Mon, 27 Aug 2012 02:58:34 +0000 (10:58 +0800)
If --repository specified, repos in conf would be skipped.

Change-Id: I527ebdc870d1c87397e581581d944f92ca65025a

depanneur

index c3b71dce39ca59a090377096cb64ac28a8a3657e..af30c40b0a335cbc0396f5a064f1c3d0d8942630 100755 (executable)
--- a/depanneur
+++ b/depanneur
@@ -59,6 +59,7 @@ use File::Basename;
 
 my @threads;
 my @exclude = ();
+my @repos= ();
 my $arch = "i586";
 my $path = "";
 my $style = "git";
@@ -105,6 +106,7 @@ my %workers = ();
 
 
 GetOptions (
+    "repository=s" => \@repos,
     "arch=s" => \$arch,
     "dist=s" => \$dist,
     "clean" => \$clean,
@@ -186,19 +188,29 @@ Available options:
 }
 
 
-my $Config = LoadFile($config_filename);
-if (!$Config) { 
-    print "Error while parsing $config_filename";
-    exit(1);
-}
 my @package_repos = ();
-foreach my $r (@{$Config->{Repositories}}) {
-    my $uri = URI->new($r->{Url});
-    if ( $r->{Password} && $r->{Username} ) {
-        $uri->userinfo($r->{Username} . ":" . $r->{Password});
+my $Config;
+if (-e $config_filename) {
+    $Config = LoadFile($config_filename);
+    if (!$Config) {
+        print "Error while parsing $config_filename";
+        exit(1);
     }
-    if ($uri->scheme ne "file") {
-        push(@package_repos, $uri);
+}
+
+if (@repos) {
+    @package_repos = @repos;
+} else {
+    if ($Config){
+        foreach my $r (@{$Config->{Repositories}}) {
+            my $uri = URI->new($r->{Url});
+            if ( $r->{Password} && $r->{Username} ) {
+                $uri->userinfo($r->{Username} . ":" . $r->{Password});
+            }
+            if ($uri->scheme ne "file") {
+                push(@package_repos, $uri);
+            }
+        }
     }
 }