From 600a9c6416e77c60c8edc237593aa6d3fe9fad17 Mon Sep 17 00:00:00 2001
From: Kevin Lyda <kevin@lyda.ie>
Date: Mon, 26 May 2025 19:19:27 +0100
Subject: [PATCH] More docs for modules

---
 ask/ask.go       |  4 +++-
 batch/batch.go   | 17 ++++++++++++++++-
 dclish/dclish.go | 33 ++++++++++++++++++++++++++++++++-
 3 files changed, 51 insertions(+), 3 deletions(-)

diff --git a/ask/ask.go b/ask/ask.go
index 6581365..33e1cd4 100644
--- a/ask/ask.go
+++ b/ask/ask.go
@@ -1,6 +1,8 @@
 /*
 Package ask provides routines to ask questions of users. It handles
-getting a line of text, getting a choice from a liat and other things.
+getting a line of text, getting a choice from a list and other things.
+
+Underneath it uses the [github.com/chzyer/readline] module.
 */
 package ask
 
diff --git a/batch/batch.go b/batch/batch.go
index 6de3eef..0176b7b 100644
--- a/batch/batch.go
+++ b/batch/batch.go
@@ -1,4 +1,19 @@
-// Package batch contains the non-interactive maintenence commands.
+// Package batch contains both interactive and non-interactive maintenence
+// commands.
+//
+// The interactive batch commands are as follows:
+//
+//   - `install` does the initial install for bulletin.  This will create
+//     and seed the database and create the initial user.  It will also
+//     create the user's crontab entries.
+//   - `new-user` creates a new user.
+//
+// The non-interactive batch commands are run from the user's crontab.
+//
+//   - `reboot` is supposed to be run on system reboot and will delete
+//     all shutdown messages.
+//   - `expire` removes all expired messages and deletes broadcast messages
+//     older than 3 days.
 package batch
 
 import (
diff --git a/dclish/dclish.go b/dclish/dclish.go
index 9f2096e..ecffd54 100644
--- a/dclish/dclish.go
+++ b/dclish/dclish.go
@@ -1,4 +1,35 @@
-// Package dclish A DCL-like command line parser.
+/*
+Package dclish A DCL-like command line parser.
+
+From the OpenVMS manual on how to parse a DCL command line.
+
+The following rules apply when entering DCL commands. Refer to
+Chapter 5 for information about using extended file names in DCL
+commands.
+
+  - Use any combination of uppercase and lowercase letters. The DCL
+    interpreter translates lowercase letters to uppercase. Uppercase and
+    lowercase characters in parameter and qualifier values are equivalent
+    unless enclosed in quotation marks (" ").
+  - Separate the command name from the first parameter with at least one
+    blank space or a tab.
+  - Separate each additional parameter from the previous parameter or
+    qualifier with at least one blank space or a tab.
+  - Begin each qualifier with a slash (/). The slash serves as a separator
+    and need not be preceded by blank spaces or tabs.
+  - If a parameter or qualifier value includes a blank space or a tab,
+    enclose the parameter or qualifier value in quotation marks.
+  - You cannot specify null characters (<NUL>) on a DCL command line,
+    even if you enclose the null character in quotation marks.
+  - Include no more than 127 elements (parameters, qualifiers, and qualifier
+    values) in each command line.
+  - Each element in a command must not exceed 255 characters. The entire
+    command must not exceed 1024 characters after all symbols1 and lexical
+    functions2 are converted to their values.
+  - You can abbreviate a command as long as the abbreviated name remains
+    unique among the defined commands on a system. DCL looks only at the
+    first four characters for uniqueness.
+*/
 package dclish
 
 import (
-- 
GitLab