diff options
Diffstat (limited to 'Debian')
-rw-r--r-- | Debian/Debhelper/Dh_Buildsystems.pm | 17 | ||||
-rw-r--r-- | Debian/Debhelper/Dh_Getopt.pm | 35 | ||||
-rw-r--r-- | Debian/Debhelper/Dh_Lib.pm | 4 |
3 files changed, 18 insertions, 38 deletions
diff --git a/Debian/Debhelper/Dh_Buildsystems.pm b/Debian/Debhelper/Dh_Buildsystems.pm index 8e9920f1..ac09dd28 100644 --- a/Debian/Debhelper/Dh_Buildsystems.pm +++ b/Debian/Debhelper/Dh_Buildsystems.pm @@ -108,27 +108,30 @@ sub load_all_buildsystems { sub buildsystems_init { my %args=@_; + # TODO: Not documented in the manual pages yet. + # Initialize options from environment variables + if (exists $ENV{DH_AUTO_BUILDDIRECTORY}) { + $opt_builddir = $ENV{DH_AUTO_BUILDDIRECTORY}; + } + if (exists $ENV{DH_AUTO_BUILDSYSTEM}) { + $opt_buildsys = $ENV{DH_AUTO_BUILDSYSTEM}; + } + # Available command line options my %options = ( - "d" => undef, # cancel default D_FLAG option spec "d=s" => \$opt_sourcedir, "sourcedirectory=s" => \$opt_sourcedir, "b:s" => \$opt_builddir, "builddirectory:s" => \$opt_builddir, - "c=s" => \$opt_buildsys, + "m=s" => \$opt_buildsys, "buildsystem=s" => \$opt_buildsys, "l" => \$opt_list, "--list" => \$opt_list, ); $args{options}{$_} = $options{$_} foreach keys(%options); - - # Pass options from the DH_AUTO_OPTIONS environment variable - if (defined $ENV{DH_AUTO_OPTIONS}) { - $args{extra_args} = $ENV{DH_AUTO_OPTIONS}; - } Debian::Debhelper::Dh_Lib::init(%args); } diff --git a/Debian/Debhelper/Dh_Getopt.pm b/Debian/Debhelper/Dh_Getopt.pm index 2a5aa6c2..9ca9d167 100644 --- a/Debian/Debhelper/Dh_Getopt.pm +++ b/Debian/Debhelper/Dh_Getopt.pm @@ -71,9 +71,9 @@ sub NonOption { sub getoptions { my $array=shift; - my $extraoptions=shift; + my %options=%{shift()} if ref $_[0]; - my %options=( + Getopt::Long::GetOptionsFromArray($array, "v" => \$dh{VERBOSE}, "verbose" => \$dh{VERBOSE}, @@ -137,35 +137,21 @@ sub getoptions { "ignore=s" => \&AddIgnore, - "<>" => \&NonOption, - ); - - # Merge extra options and cancel default ones as needed (undef) - if (defined $extraoptions) { - for my $opt (keys %$extraoptions) { - if (defined $extraoptions->{$opt}) { - $options{$opt}=$extraoptions->{$opt}; - } - else { - delete $options{$opt}; - } - } - } + %options, - Getopt::Long::GetOptionsFromArray($array, %options); + "<>" => \&NonOption, + ) } sub split_options_string { my $str=shift; - $str=~s/^\s+//; - return map { $_=~s/\\(\s)/$1/g; $_=~s/\s+$//g; $_ } split(/(?<!\\)\s+/,$str); + return split(/\s+/,$str); } # Parse options and set %dh values. sub parseopts { my $options=shift; - my $extra_args=shift; my @ARGV_extra; @@ -208,15 +194,6 @@ sub parseopts { } } - if (defined $extra_args) { - my @extra_opts=split_options_string($extra_args); - my $ret=getoptions(\@extra_opts, $options); - if (!$ret) { - warning("warning: ignored unknown options"); - } - push @ARGV_extra, @extra_opts; - } - my $ret=getoptions(\@ARGV, $options); if (!$ret) { warning("warning: unknown options will be a fatal error in a future debhelper release"); diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm index b3162d07..28a90f7b 100644 --- a/Debian/Debhelper/Dh_Lib.pm +++ b/Debian/Debhelper/Dh_Lib.pm @@ -29,10 +29,10 @@ sub init { # Getopt::Long, which I'd prefer to avoid loading at all if possible. if ((defined $ENV{DH_OPTIONS} && length $ENV{DH_OPTIONS}) || (defined $ENV{DH_INTERNAL_OPTIONS} && length $ENV{DH_INTERNAL_OPTIONS}) || - (defined $params{extra_args}) || grep /^-/, @ARGV) { + grep /^-/, @ARGV) { eval "use Debian::Debhelper::Dh_Getopt"; error($@) if $@; - Debian::Debhelper::Dh_Getopt::parseopts($params{options}, $params{extra_args}); + Debian::Debhelper::Dh_Getopt::parseopts($params{options}); } # Another way to set excludes. |