DTHELPGEN(1)

πŸ“¦
version 2.5.3 Β· 2 versions
, in nixos 26.05

πŸ’– DTHELPGEN πŸ’–

okay bestie so real talk, this is dthelpgen from the user cmd manual section, and she's basically the friend who goes around collecting everybody's help files and stitches them into one giant cute index. no cap, she's lowkey the main character of the CDE help system 🫢

✨ SYNOPSIS ✨

dthelpgen [-dirdirectory] [options]

(yes, that's -dir smooshed right up against directory. she's like that. iconic honestly πŸ’…)

🌸 DESCRIPTION 🌸

so dthelpgen goes out and searches for all the CDE help family files that are installed and registered, then generates a help volume named browser, and that volume is literally just full of hypertext links to every help family and volume she found. obsessed. πŸŽ€

by default her search scope is only the local system, but she's flexible β€” you can extend it to remote systems using the environment variables described down below, iykyk πŸ’œ

here's the slay part: dthelpgen only updates the browser help volume if new family files or volumes are detected inside the search path directories. if there's nothing new, she just exits. no drama, no notes. if there are new files, she posts an information dialog telling the user that she's updating the browser volume β€” very "hey bestie, heads up" of her ✨

by viewing the browser help volume and traversing its hypertext links, the user can navigate through all of the registered online help information. she built the map, you do the walking πŸ¦‹

to actually view the browser volume, select the Help Viewer control from the desktop's Front Panel. the top level of the browser volume lists product families, and the second level β€” under each family β€” lists the volumes that are members of the product family. two-level nesting, very demure, very mindful 🌸

CDE users or system administrators typically do not need to interact directly with dthelpgen. a browser volume gets generated (when one doesn't already exist, or is out of date) when the user selects the Help Viewer control from the CDE front panel. it's also generated when the user executes the ReloadApps Action, or runs dthelpgen directly from a terminal window πŸ‘‘

in the first two cases, the resulting browser volume is placed in the user's $HOME/.dt/help/$DTUSERSESSION directory. when running dthelpgen from a terminal window, the -dir option must be used to specify the location to create the resulting browser file. no -dir, no vibes. rules are rules 😭


πŸ’… OPTIONS πŸ’…

the following options are available:

  • -generate β€” tells dthelpgen to unconditionally regenerate the browser volume without first checking if new families or help volumes are present. she's not checking, she's just doing it. periodt πŸ”₯
  • -dir directory β€” specifies the directory to deposit the generated files. and bestie, the specification can use substitution values β€” the ENVIRONMENT VARIABLES heading describes the substitution values allowed and their effect. also: if the environment variable LANG is not set or is NULL, it is forced to C. (yes. forced. πŸ’€)
  • -file basename β€” specifies the base name for the files generated by dthelpgen. the default name is browser. extensions are appended to basename to create the file names for the help volume ✨
  • -lang language β€” specifies which language directories to search for help Family files and help volumes. if this option is not set, the default LANG value is used. if the -lang value is set, it takes precedence over the current environment's LANG setting. she said my rule now πŸ‘‘

🌈 ENVIRONMENT VARIABLES 🌈

the CDE help system uses two environment variables for locating help volumes and Family files within the desktop environment:

  • DTHELPSEARCHPATH β€” system search path environment variable for locating help volumes on local and/or remote nfs mounted systems 🌐
  • DTHELPUSERSEARCHPATH β€” users search path environment variable for locating user specific help volumes on local and/or remote nfs mounted systems 🫢

the environment variables contain colon-separated lists of directory paths. each directory path can contain both environment variable names as well as special field descriptors that are expanded at runtime ✨

field descriptors consist of a percentage (%) symbol followed by a single character. field descriptors and their substitution values are:

  • %H β€” this value is replaced with the current volume or family name being searched for πŸŽ€
  • %L β€” replaced with the current value of the LANG environment variable 🌸
  • %% β€” replaced with a single % πŸ’…

for example, given:

DTHELPSEARCHPATH="/nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/etc/appconfig/help/%L/%H.sdl"

the dthelpgen utility looks for files ending with .hf in the directory /nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/etc/appconfig/$LANG. to find the volumes listed in each .hf file, dthelpgen looks in /nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/etc/help/appconfig/$LANG/%H.sdl with %H replaced with the name of the volume listed in the Family file. see how that works? she's expanding everything at runtime, no cap πŸ”₯

the dthelpgen utility uses both DTHELPUSERSEARCHPATH and DTHELPSEARCHPATH. the default value for DTHELPUSERSEARCHPATH is:

$HOME/.dt/help/$DTUSERSESSION/%H: $HOME/.dt/help/$DTUSERSESSION/%H.sdl:
$HOME/.dt/help/$DTUSERSESSION/%H.hv: $HOME/.dt/help/%H:
$HOME/.dt/help/%H.sdl: $HOME/.dt/help/%H.hv

DTHELPUSERSEARCH is first searched for the requested volume. if the volume is not found, the DTHELPSEARCHPATH value is searched. user stuff first, always πŸ’–

the default value for DTHELPSEARCHPATH path is:

/nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/etc/appconfig/help/%L/%H:
/nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/etc/appconfig/help/%L/%H.sdl:
/nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/etc/appconfig/help/%L/%H.hv:
/nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/etc/appconfig/help/C/%H:
/nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/etc/appconfig/help/C/%H.sdl:
/nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/etc/appconfig/help/C/%H.hv:
/nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/appconfig/help/%L/%H:
/nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/appconfig/help/%L/%H.sdl:
/nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/appconfig/help/%L/%H.hv:
/nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/appconfig/help/C/%H:
/nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/appconfig/help/C/%H.sdl:
/nix/store/6waxpwr8lzfzc9ka48gl7yh60rqvlkdb-cde-2.5.3/appconfig/help/C/%H.hv

like, that's a lot of paths bestie but she knows every single one of them by heart πŸ’€


πŸ“‚ INPUT FILES πŸ“‚

the following are input files used by dthelpgen:

  • &<file>.hf β€” runtime Help Family file, accessed directly by dthelpgen πŸ‘€
  • &<file>.sdl β€” runtime Help volume file(s), accessed indirectly through explicit references within the Help Family file πŸ¦‹

πŸ’Ύ OUTPUT FILES πŸ’Ύ

the following are descriptions of the output files generated by dthelpgen:

  • browser.hv β€” the master runtime browser Help volume file generated by dthelpgen. the big one. the queen πŸ‘‘
  • browser00.ht && browser01.ht β€” runtime browser Help topic files generated by dthelpgen ✨

😬 Warning Messages

  • Zero Volume files found β€” indicates that none of the volumes specified in the Family files are registered in the system. she looked. she found nothing. πŸ•³οΈ
  • Zero Family files found β€” indicates that no Family files are registered in the system. nobody's home 😭

πŸ™ˆ Error Messages

  • Element of path is not a directory β€” indicates that some part of the path is not a directory.
  • Access denied for directory path. Try running as super user?" β€” indicates that some part of path does not allow the caller read, access or write permission. (that stray quote is in the original, bestie, don't come for me πŸ’€)
  • Element of path does not exist β€” indicates that some element of path does not exist or is misspelled. typo era πŸ™ˆ
  • File system containing path is full β€” indicates that the disc containing the path does not contain any space or inodes. girl is FULL πŸ“
  • Unable to access path - error status number value β€” indicates that there is an access problem of type value occurred with path.
  • File system containing path is read only β€” indicates that the disc containing the path is mounted read-only. she cannot write. she simply cannot βœ‹
  • Requires root permission to write to path β€” indicates that some part of the path does not allow the user write permission.
  • Write to volume invalid β€” indicates that volume does not have the correct write permissions for the caller.
  • Search Path empty β€” indicates that the environment variables. DTHELPUSERSEARCHPATH and/or DTHELPSEARCHPATH were declared but no paths were specified in the variables. declared but empty, the audacity πŸ’€
  • `title' resource missing β€” indicates that the title resource in a Family file is missing.
  • `abstract' resource missing β€” indicates that the abstract resource in a Family file is missing.
  • `volumes' resource missing β€” indicates that the volumes resource in a Family file is missing.
  • `character' set resource missing β€” indicates that the CharSet resource in a Family file is missing.
  • Unable to access current working directory - error status number value β€” indicates that the -dir option was specified with a relative path and that dthelpgen is unable to get the current working directory.
  • Unable to allocate memory β€” system resources are used up, no available memory, dthelpgen aborts execution. RIP to her, fr fr 😭
  • Destination directory missing β€” missing directory value for -dir option.
  • Invalid system language specified β€” non-supported value used with the -lang option.
⚠️ heads up bestie: Unable to allocate memory means she literally aborts execution. that's not a vibe check, that's the end of the road.

πŸŽ€ EXAMPLES πŸŽ€

  • dthelpgen -dir $HOME/.dt/help β€” creates, if required, a new browser help volume in the users home directory under .dt/help/ ✨
  • dthelpview -dir $HOME/.dt/help -generate β€” forces the creation of a new browser help volume and places it in the users home directory under .dt/help/ πŸ”₯

(yes, that second example says dthelpview in the original and i'm leaving it exactly as it is, don't @ me πŸ’…)

🌟 SEE ALSO 🌟

dthelpview(1), dtsearchpath(1), dthffile(4), and the CDE Help System Author's and Programmer's Guide πŸ“š


and that's the whole page bestie, top to bottom β€” like, the header says she's dthelpgen(user cmd) and the footer says it right back at ya, same dthelpgen(user cmd) energy on both ends 🫢 go forth and generate some browser volumes, you absolute icon πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from