Quellcode durchsuchen

better rpm --fetch stuff: DST dir is created and progress bar is shown

Ralf S. Engelschall vor 24 Jahren
Ursprung
Commit
021a0888a6
2 geänderte Dateien mit 24 neuen und 2 gelöschten Zeilen
  1. 2 0
      openpkg/openpkg.boot
  2. 22 2
      openpkg/rpmx.pl

+ 2 - 0
openpkg/openpkg.boot

@@ -54,6 +54,8 @@ if [ ".$root" = ".-s" ]; then
     tmpdir="/tmp/openpkg.boot.$$"
     if [ -d ../PKG ]; then
        pkgdir=../PKG
+    elif [ -d ../../PKG/BIN ]; then
+       pkgdir=../../PKG/BIN
     elif [ -d ../../PKG ]; then
        pkgdir=../../PKG
     elif [ -d ../../ftp/current/SRC ]; then

+ 22 - 2
openpkg/rpmx.pl

@@ -490,6 +490,18 @@ sub op_fetch {
     $name =~ s|^.+/([^/]+)$|$1|;
     my $srcdir = `$CFG->{PRG}->{"rpm"} --define 'name $name' --eval '%_sourcedir'`;
     $srcdir =~ s|\n+$||s;
+    my $specdir = `$CFG->{PRG}->{"rpm"} --define 'name $name' --eval '%_specdir'`;
+    $specdir =~ s|\n+$||s;
+
+    #   make sure source and spec directory actually exists
+    if (not -d $srcdir) {
+        print(STDERR "rpm: Creating directory $srcdir\n");
+        system("mkdir $srcdir");
+    }
+    if (not -d $specdir) {
+        print(STDERR "rpm: Creating directory $specdir\n");
+        system("mkdir $specdir");
+    }
 
     #   parse spec file
     my $DEF = {};
@@ -511,8 +523,14 @@ sub op_fetch {
             my $file = $srcfile;
             $file = substr($file, 0, 40) if (length($file) > 40);
             printf(STDERR "%-9s %-40s ", "$srcid:", $file);
-            if (-f "$srcdir/$srcfile") {
-                my $size = (stat("$srcdir/$srcfile"))[7];
+            if (-f "$srcdir/$srcfile" or -f "$specdir/$srcfile") {
+                my $size;
+                if (-f "$srcdir/$srcfile") {
+                   $size = (stat("$srcdir/$srcfile"))[7];
+                }
+                else {
+                   $size = (stat("$specdir/$srcfile"))[7];
+                }
                 if ($size > 1024*1024) {
                     $size = sprintf("%.1fMB", $size / (1024*1024));
                 }
@@ -529,9 +547,11 @@ sub op_fetch {
                 print STDERR "rpm: Fetching $srcurl\n";
                 my $cmd = $CFG->{PRG}->{"curl"}.
                           " --location" .
+                          " --progress-bar" .
                           " --output $srcdir/$srcfile" .
                           " $srcurl";
                 my $rc = system($cmd);
+                print STDOUT "\n";
                 if ($rc != 0) {
                     print STDERR "rpm: Failed to fetch source file `$srcfile'\n";
                     return 1;