From: Modestas Vainius Date: Wed, 26 Aug 2009 20:40:45 +0000 (-0400) Subject: Allow dh addons to pass options to debhelper commands X-Git-Tag: 7.3.16~6 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=391a6c42bc528de0e3ba34874346d290054f517e;hp=f92915e39eef5b24698881576121356ccba0b7c8;p=debhelper.git Allow dh addons to pass options to debhelper commands Add dh addons APIs add_command_options()/remove_command_options() that allow addons to add additional options which dh will pass to the specified debhelper commands. Signed-off-by: Modestas Vainius --- diff --git a/dh b/dh index bdd78c5..f03bf00 100755 --- a/dh +++ b/dh @@ -293,6 +293,9 @@ $sequences{binary} = [@{$sequences{install}}, qw{ }, @b]; $sequences{'binary-arch'} = [@{$sequences{binary}}]; +# Additional command options +my %command_opts; + # sequence addon interface sub _insert { my $offset=shift; @@ -333,6 +336,31 @@ sub add_command { my $sequence=shift; unshift @{$sequences{$sequence}}, $command; } +sub add_command_options { + my $command=shift; + push @{$command_opts{$command}}, @_; +} +sub remove_command_options { + my $command=shift; + if (@_) { + # Remove only specified options + if (my $opts = $command_opts{$command}) { + foreach my $opt (@_) { + if (ref($opt) eq "Regexp") { + $opts = [ grep ! /$opt/, @$opts ]; + } + else { + $opts = [ grep { $_ ne $opt } @$opts ]; + } + } + $command_opts{$command} = $opts; + } + } + else { + # Clear all additional options + delete $command_opts{$command}; + } +} if ($dh{LIST}) { my %addons; @@ -501,6 +529,10 @@ sub run { $command="debian/rules"; @options="override_".$override_command; } + else { + # Pass additional command options if any + unshift @options, @{$command_opts{$command}} if exists $command_opts{$command}; + } # 3 space indent lines the command being run up under the # sequence name after "dh ". diff --git a/doc/PROGRAMMING b/doc/PROGRAMMING index 4be09b1..211e57e 100644 --- a/doc/PROGRAMMING +++ b/doc/PROGRAMMING @@ -270,6 +270,20 @@ add_command($new_command, $sequence) Add $new_command to the beginning of the specified sequence. If the sequence does not exist, it will be created. +add_command_options($command, $opt1, $opt2, ...) + Append $opt1, $opt2 etc. to the list of additional options which + dh passes when running the specified $command. These options are + not relayed to debhelper commands called via $command override. + +remove_command_options($command) + Clear all additional $command options previously added with + add_command_options(). + +remove_command_options($command, $opt1, $opt2, ...) + Remove $opt1, $opt2 etc. from the list of additional options which + dh passes when running the specified $command. $optX might be a string + or a regular expresion. + Buildsystem Classes: -------------------