htconfig - create/update GLOBAL gsearch.cgi files
htconfig -I [-v] [-z] [-a action] [-p pathdb] cgidir
htconfig --install [--verbose] [--makeghtml] [--formaction=cgi]
htconfig [-v] [-u url] [-d GTAGSDBPATH] [-s GTAGSROOT] [htmldir]
htconfig [--verbose] [--url=base-url] [--tags=GTAGSDBPATH]
htconfig is a program to create and maintain a centralised cgi
interface for hypertext created with Shigio Yamaguchi’s GLOBAL source
code tag system.
htconfig is used to create the necessary scripts in your system’s
favoured cgi-bin directory, and to maintain the paths database, which
gsearch.cgi uses to locate your hypertext source and the associated
TAGS files. This enables GLOBAL’s hypertext search facilities without
requiring you to enable cgi execution outside of a system-wide cgi-bin
htconfig acts as a backend for the htmake(1) script which automates the
process of generating hypertext source with the relevant options to
htags(1) and adding required entries to the paths database. htconfig
can also optionally create a centralised ghtml.cgi script, for users of
the htags -c option which creates compressed hypertext with a .ghtml
uh, you get one guess.
These options are to be used during the initial installation of the
centralised cgi mechanism. If you installed this as a binary package
you probably won’t need to use these and can skip to the next section.
Otherwise you must run htconfig --install with any or all of the
following options before using htmake(1) or any of the Database Options
Creates gsearch.cgi in cgidir and creates the config file
/etc/gtags/htmake.conf if it doesn’t already exist. You must
specify cgidir, there is no default.
-a action, --formaction=action
Puts the default submit action for hypertext created with
htmake(1) into /etc/gtags/htmake.conf when that file is created.
You can edit htmake.conf at any time to change it, or override
its setting from the command line. Setting this to the absolute
url of gsearch.cgi on your system is probably what you want here
unless you understand why not.
-p paths-database, --pathdb=paths-database
Puts the filesystem location of the paths database file into
/etc/gtags/htmake.conf when that file is created. You must
define a location for the paths database either with this option
or by editing the GSPATHDATA option in htmake.conf before using
htmake(1) or the Database options of htconfig(1).
Due to file system variations there is no default for this. For
Debian GNU/Linux systems the preferred location is:
One suggestion for *BSD systems would be:
Installs the ghtml.cgi script in cgidir. You will also need
edit your http server config to make use of this. For apache
this involves ensuring mod_mime and mod_actions are loaded and
adding lines like:
AddHandler htags-gzipped-html ghtml
Action htags-gzipped-html /cgi-bin/ghtml.cgi
to your httpd.conf file.
These options are used to configure and maintain the path database that
allows gsearch.cgi to find your hypertext source and it’s tag files.
You should call htconfig with these options when you move files or
create a new hypertext source tree with htags(1). The path database
requires the hypertext source to be generated with a unique id using
the htags --id=someid option.
When creating a new hypertext source tree you may prefer to use
htmake(1) which invokes htags with the desired options and then calls
htconfig to update the path database as a single operation.
specifies the filesystem path to the root of your hypertext
source tree. It defaults to ./HTML in line with htags(1)
defaults and is not required at all if the --url option is used
and your system has lynx(1) availiable,
-u base-url, --url=base-url
the base url of your hypertext source. For best results always
use absolute url’s here.
It defaults to file:/htmldir
-d gtagsdbpath, --tags=gtagsdbpath
the filesystem path to the GTAGS files associated with your
source. It defaults to the current directory.
-s gtagsroot, --src=gtagsroot
the filesystem path to the root of your original plaintext
source tree. It defaults to the current directory.
To initialise and install cgi and config files:
# htconfig -I -a http://host/cgi-bin/gsearch.cgi \
-p /var/lib/gsearch/pathdata /usr/lib/cgi-bin
To generate hypertext and update path database:
$ cd /usr/src/myprog
$ htags --action=http://host/cgi-bin/gsearch.cgi \
or more simply:
$ cd /usr/src/myprog
To update the path database if you relocate your hypertext, TAGS files,
or the original program source:
$ htconfig -u new-url -d new-gtagsdbpath \
-s new-gtagsdbroot newhtmldir
some of these option may be inferred - See their defaults under
The user running htconfig or htmake must have write permission for the
htconfig currently has no automatic housekeeping mechanism for ’stale’
database entries. This should be fixed RSN.
There is presently no file locking mechanism for database updates.
Attempting simultaneous updates could prove ’surprising’ ^_^
This is alpha software - expect anything!
htmake(1), htags(1), global(1).
Ron Lee <firstname.lastname@example.org>
Thanks to Shigio Yamaguchi <email@example.com> for creating GLOBAL and
releasing it as free software.
A truly cool productivity tool!