|
|
@@ -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;
|