Skip to content

Shell Script Documentation

Write documentation in comments and render it with templates.

ci documentation pypi gitpod gitter

shellman can generate man pages, wiki pages and help text using documentation written in shell scripts comments.

For example:

#!/bin/bash

## \brief Just a demo
## \desc This script actually does nothing.

main() {
  case "$1" in
    ## \option -h, --help
    ## Print this help and exit.
    -h|--help) shellman "$0"; exit 0 ;;
  esac
}

## \usage demo [-h]
main "$@"

Output when calling ./demo -h:

Usage: demo [-h]

This script actually does nothing.

Options:
  -h, --help            Print this help and exit.

You can see more examples in the documentation: https://pawamoy.github.io/shellman/.

Demo

In the demo above we saw the three builtin templates: helptext, manpage and wikipage.

You can use your own templates by specifying them with the --template path:my/template syntax.

You can also write a plugin, see the docs: https://pawamoy.github.io/shellman/plugins.

Installation¤

pip install shellman

With uv:

uv tool install shellman

Some projects using shellman¤

  • shellm — A collection of scripts and libraries built on a core inclusion-system, all installable with basher. Here are a few examples:
  • daemon — A library that facilitates the writing of daemonized scripts that consume files in a watched directory.
  • debug — A simple script that sets the verbose/dry-run/debug Bash flags before running another script.
  • format — Format your output with style and color.
  • home — A home for your shell scripts!
  • loop — Control the flow of your loops (pause/resume/etc.).