aboutsummaryrefslogtreecommitdiffstats
path: root/rpmtools.pm
diff options
context:
space:
mode:
authorFrancois Pons <fpons@mandriva.com>2001-01-23 19:18:29 +0000
committerFrancois Pons <fpons@mandriva.com>2001-01-23 19:18:29 +0000
commit96c7624418b7b11ef42c95abb9059086de357c3b (patch)
tree5a689cd052d32660bfc26704f7f14bb33bdf509a /rpmtools.pm
parentc4fa5b0abb878f44e75f575e20d303304d4e6d36 (diff)
downloadrpmtools-96c7624418b7b11ef42c95abb9059086de357c3b.tar
rpmtools-96c7624418b7b11ef42c95abb9059086de357c3b.tar.gz
rpmtools-96c7624418b7b11ef42c95abb9059086de357c3b.tar.bz2
rpmtools-96c7624418b7b11ef42c95abb9059086de357c3b.tar.xz
rpmtools-96c7624418b7b11ef42c95abb9059086de357c3b.zip
added --dir and -d flag for packdrake*.
management of specific directory for building archive.
Diffstat (limited to 'rpmtools.pm')
-rw-r--r--rpmtools.pm22
1 files changed, 9 insertions, 13 deletions
diff --git a/rpmtools.pm b/rpmtools.pm
index d401183..738aab5 100644
--- a/rpmtools.pm
+++ b/rpmtools.pm
@@ -74,10 +74,6 @@ sub new {
info => {},
depslist => [],
provides => {},
- options => {
- tmpdir => $ENV{TMPDIR} || "/tmp",
- noclean => 0,
- },
}, $class;
}
@@ -108,22 +104,22 @@ sub read_hdlists {
#- build an hdlist from a list of files.
sub build_hdlist {
- my ($params, $hdlist, @rpms) = @_;
- my ($work_dir, %names) = "$params->{options}{tmpdir}/.build_hdlist";
+ my ($params, $noclean, $dir, $hdlist, @rpms) = @_;
+ my %names;
#- build a working directory which will hold rpm headers.
- -d $work_dir or mkdir $work_dir, 0755 or die "cannot create working directory $work_dir\n";
- my $cwd = `pwd`; chdir $work_dir;
+ $dir ||= '.';
+ -d $dir or mkdir $dir, 0755 or die "cannot create directory $dir\n";
foreach (@rpms) {
my ($key, $name) = /(([^\/]*)-[^-]*-[^-]*\.[^\/\.]*)\.rpm$/ or next;
- system("rpm2header '$_' > $key") unless -e $key;
- $? == 0 or unlink($key), die "bad rpm $_\n";
- -s $key or unlink($key), die "bad rpm $_\n";
+ system("rpm2header '$_' > '$dir/$key'") unless -e "$dir/$key";
+ $? == 0 or unlink("$dir/$key"), die "bad rpm $_\n";
+ -s "$dir/$key" or unlink("$dir/$key"), die "bad rpm $_\n";
push @{$names{$name} ||= []}, $key;
}
- open B, "| packdrake -b9s '$hdlist' 400000";
+ open B, "| packdrake -b9ds '$hdlist' '$dir' 400000";
foreach (@{$params->{depslist}}) {
if (my $keys = delete $names{$_->{name}}) {
print B "$_\n" foreach @$keys;
@@ -134,7 +130,7 @@ sub build_hdlist {
}
close B or die "packdrake failed\n";
- chdir $cwd; system("rm", "-rf", $work_dir) unless $params->{options}{noclean};
+ system("rm", "-rf", $dir) unless $dir eq '.' || $noclean;
}
#- read one or more rpm files.