summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-10-21 14:00:09 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-10-21 14:00:09 -0400
commit3c458775d1180d034217c4b44e3871d8b87bf382 (patch)
tree344bd8b90c67ed54be8fb26dceb9ae4636241879 /doc
parent4839c4003b54b6f030e5ea58db5b591dc1088080 (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/PROGRAMMING9
-rw-r--r--doc/TODO28
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:
----------------
diff --git a/doc/TODO b/doc/TODO
index 18cdb903..0a7354ff 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -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)?