OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Michael van Elst
Root: /e/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-re Date: 18-Nov-2002 17:22:14
Branch: HEAD Handle: 2002111816221300
Modified files:
openpkg-re openpkg-build
Log:
support prefix environments in openpkg-build.rc to select options based
on RPM path. Obviously you can only specify -R in the default environment.
Summary:
Revision Changes Path
1.28 +18 -4 openpkg-re/openpkg-build
____________________________________________________________________________
Index: openpkg-re/openpkg-build
============================================================
$ cvs diff -u -r1.27 -r1.28 openpkg-build
--- openpkg-re/openpkg-build 18 Nov 2002 15:23:58 -0000 1.27
+++ openpkg-re/openpkg-build 18 Nov 2002 16:22:13 -0000 1.28
@@ -36,14 +36,19 @@
use Getopt::Std;
use vars qw/$opt_R $opt_r $opt_f $opt_u $opt_U $opt_a $opt_A $opt_z $opt_P $opt_N/;
+my(%env) = ( '' => { opt => {}, argv => [] } );
if (open(FH, "< $ENV{'HOME'}/.openpkg-build.rc")) {
+ my($env) = $env{''};
while (<FH>) {
- if (my($opt,$val) = /^\-([RfruUaAzPN])\s*(.*?)\s*$/) {
+ if (/^\s*\[([^\]]*)\]/) {
+ $env{$1} = { opt => {}, argv => [] } unless $env{$1};
+ $env = $env{$1};
+ } elsif (my($opt,$val) = /^\-([RfruUaAzPN])\s*(.*?)\s*$/) {
$val = 1 unless defined $val;
- eval "\$opt_$opt = '$val';";
+ $env->{opt}->{$opt} = $val;
} else {
chomp;
- push(@ARGV, split(/\s+/, $_));
+ push @{$env->{arg}}, split(/\s+/, $_);
}
}
close(FH);
@@ -91,9 +96,18 @@
my($RPM,$RPM_PRIV,$RPM_NPRIV,$PROG);
-$RPM = $opt_R || 'rpm';
+$RPM = $opt_R || $env{''}->{opt}->{'R'} || 'rpm';
$RPM = (`which $RPM` =~ m{^(/.*)})[0];
die "FATAL: cannot locate rpm in path\n" unless $RPM =~ m{^/};
+
+# augment command line parameters
+foreach my $env (sort { $a cmp $b } grep { $RPM =~ /^\Q$_\E/ } keys %env) {
+ while (my($opt,$val) = each %{$env{$env}->{opt}}) {
+ eval "\$opt_$opt = '$val' unless defined \$opt_$opt;";
+ }
+ push @ARGV, @{$env{$env}->{argv}};
+}
+
$RPM_PRIV = ($opt_P ? $opt_P." ".$RPM : $RPM);
$RPM_NPRIV = ($opt_N ? $opt_N." ".$RPM : $RPM);
($PROG) = $0 =~ /(?:.*\/)?(.*)/;
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [EMAIL PROTECTED]