]> git.donarmstrong.com Git - debhelper.git/blobdiff - doc/PROGRAMMING
Merge branch 'dh_overrides'
[debhelper.git] / doc / PROGRAMMING
index 239f53e757e6d122b162ac0150b72a1477b08eb9..3cea384f787101e83eb1ec42d11423f79ee03bf3 100644 (file)
@@ -40,7 +40,7 @@ merge these modifications into the actual postinst scripts.
 
 In general, files named debian/*.debhelper are internal to debhelper, and
 their existence or use should not be relied on by external programs such as
-the build process of a package.
+the build process of a package. These files will be deleted by dh_clean.
 
 Debhelper programs should default to doing exactly what policy says to do.
 
@@ -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.
@@ -93,28 +100,25 @@ switch             variable        description
                                packages
 -n             NOSCRIPTS       if set, do not make any modifications to the 
                                package's postinst, postrm, etc scripts.
+-o             ONLYSCRIPTS     if set, only make modifications to the
+                               package's scripts, but don't look for or
+                               install associated files.
 -X             EXCLUDE         exclude a something from processing (you
                                decide what this means for your program)
                                (This is an array)
-                EXCLUDE_FIND   same as DH_EXCLUDE, except all items are put
+-X              EXCLUDE_FIND   same as EXCLUDE, except all items are put
                                into a string in a way that they will make
                                find find them. (Use ! in front to negate
-                               that, of course)
--x             INCLUDE_CONFFILES
-                               include conffiles. It's -x for obscure
-                               historical reasons.
+                               that, of course) Note that this should
+                               only be used inside complex_doit(), not in
+                               doit().
 -d             D_FLAG          you decide what this means to your program
--r             R_FLAG          you decide what this means to your program
--k             K_FLAG          you decide what this means to your program
+-k             K_FLAG          used to turn on keeping of something
 -P             TMPDIR          package build directory (implies only one
                                package is being acted on)
 -u             U_PARAMS        will be set to a string, that is typically
                                parameters your program passes on to some
                                other program. (This is an array)
--m             M_PARAMS        will be set to a string, you decide what it
-                               means to your program
--l             L_PARAMS        will be set to a string, you decide what it
-                               means to your program
 -V             V_FLAG          will be set to a string, you decide what it
                                means to your program
 -V             V_FLAG_SET      will be 1 if -V was specified, even if no
@@ -124,26 +128,18 @@ switch            variable        description
                                those processed here), will apply to all 
                                binary packages the program acts on, not just
                                the first
---init-script  INIT_SCRIPT     will be set to a string, which specifies an
-                               init script name (probably only
-                               dh_installinit will ever use this)
---sourcedir    SOURCEDIR       will be set to a string (probably only
-                               dh_movefiles will ever use this)
---destdir      DESTDIR         will be set to a string (probably only
-                               dh_builddeb will ever use this)
---filename     FILENAME        will be set to a string
---flavor       FLAVOR          will be set to a string (probably only
-                               dh_installemacsen will ever use this)
---number       PRIORITY        will be set to a number (deprecated)
+--sourcedir    SOURCEDIR       will be set to a string
+--destdir      DESTDIR         will be set to a string
 --priority     PRIORITY        will be set to a number
+--mainpackage  MAINPACKAGE     controls which package is treated as the
+                               main package to act on
 --name         NAME            a name to use for installed files, instead of
                                the package name
+--error-handler        ERROR_HANDLER   a function to call on error
 
 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:
 ----------------
 
@@ -214,6 +210,8 @@ autoscript($package, $scriptname, $snippetname, $sedcommands)
           (optional)
        This command automatically adds shell script snippets to a debian
        maintainer script (like the postinst or prerm).
+       Note that in v6 mode and up, the snippets are added in reverse
+       order for the removal scripts.
 dirname($pathname)
        Return directory part of pathname.
 basename($pathname)
@@ -237,5 +235,20 @@ delsubstvar($package, $substvar)
 excludefile($filename)
        This function returns true if -X has been used to ask for the file
        to be excluded.
+is_udeb($package)
+       Returns true if the package is marked as a udeb in the control
+       file.
+udeb_filename($package)
+       Returns the filename of the udeb package.
+getpackages($type)
+       Returns a list of packages in the control file.
+       Must pass "arch" or "indep" or "same" to specify arch-dependent or
+       -independent or same arch packages. If nothing is specified, returns all
+       packages.
+       As a side effect, populates %package_arches and %package_types with
+       the types of all packages (not only those returned).
+inhibit_log()
+       Prevent logging the program's successful finish to
+       debian/*debhelper.log
 
 -- Joey Hess <joeyh@debian.org>