Browse Source

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

master
parent
commit
021a0888a6
  1. 2
      openpkg/openpkg.boot
  2. 24
      openpkg/rpmx.pl

2
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

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

Loading…
Cancel
Save