diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-10-21 14:00:09 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-10-21 14:00:09 -0400 |
commit | 3c458775d1180d034217c4b44e3871d8b87bf382 (patch) | |
tree | 344bd8b90c67ed54be8fb26dceb9ae4636241879 /doc | |
parent | 4839c4003b54b6f030e5ea58db5b591dc1088080 (diff) |
Allow individual debhelper programs to define their own special options by passing a hash to init(), which is later passed on the Getopt::Long. Closes: #370823
Diffstat (limited to 'doc')
-rw-r--r-- | doc/PROGRAMMING | 9 | ||||
-rw-r--r-- | doc/TODO | 28 |
2 files changed, 10 insertions, 27 deletions
diff --git a/doc/PROGRAMMING b/doc/PROGRAMMING index bd6645ee..0d96457f 100644 --- a/doc/PROGRAMMING +++ b/doc/PROGRAMMING @@ -77,6 +77,13 @@ All debhelper programs should respond to certain arguments, such as -v, -i, -a, and -p. To help you make this work right, Dh_Lib.pm handles argument processing. Just call init(). +You can add support for additional options to your command by passing an +options hash to init(). The hash is then passed on the Getopt::Long to +parse the command line options. For example, to add a --foo option, which +sets $dh{FOO}: + +init(options => { foo => \$dh{FOO} }); + After argument processing, some global variables are used to hold the results; programs can use them later. These variables are elements of the %dh hash. @@ -150,8 +157,6 @@ switch variable description Any additional command line parameters that do not start with "-" will be ignored, and you can access them later just as you normally would. -If you need a new command line option, just ask me, and I will add it. - Global variables: ---------------- @@ -4,32 +4,10 @@ list grows - I welcome patches to fix items on it! Wishlist items: * All debhelper programs should only accept the options they are documented - to accept (rather than accepting all debhelper options). They should - be able to print brief usage summaries. + to accept (rather than accepting all debhelper options). This is mostly a + matter of moving command-specific options out of Dh_Getopt and into the + individial command's calls to init(). (#112349) - I think this calls for a restructuring. Make a Debhelper.pm class. Each - program subclasses the class. The class provides command line parsing, - useful functions, and so on. Skeleton of a debhelper command would then - be: - - use base qw{Debhelper}; - - sub startup { - # Add initialization stuff here. - } - - sub perpackage { - my $package=shift; - - # Stuff to do for each package here. - } - - sub fini { - # And final stuff here, if any. - } - - This needs more thought. - v8: * escaping in config files (for whitespace)? |