Skip to content

1 Man Pages

Manvendra Bhangui edited this page Dec 27, 2024 · 42 revisions

INTRODUCTION

This page documents 461 manuals for indimail, indimail-mta and associated software, and 172 manuals for API. They are listed under the below standard man page sections. These manuals have been converted from the original UNIX man pages using pandoc. This page and the conversion to markdown have been done using a script named man2md. If your project has large number of man pages, you can use man2md to generate the markdown formatted pages and upload them to github. It is provided 'as is' with no implied warranty. You will have to modify it for your project

Section 1 - General Commands
Section 8 - System Administration Commands and Daemons
Section 5 - File Formats and Conventions
Section 7 - Miscellaneous
Section 3 - Library Functions
man2md source code

Section 1 - General Commands

daemontools

13 manuals

inotify (1) - monitor file system events
installer (1) - create directories, create/copy files, named pipes and devices
instcheck (1) - create directories, create/copy files, named pipes and devices
instcheck-daemontools (1) - create directories, create/copy files, named pipes and devices
multipipe (1) - supervise a pipeline of commands
qfilelog (1) - log messages to a single file
qlogselect (1) - selectively copy entries from a qmail log file
runpod (1) - Run indimail podman / docker image using podman / docker
spipe (1) - supervise a pipeline of commands
svps (1) - prints the status of all services started by svscan
tai2tai64n (1) - convert TAI timestamps to TAI64N
tai64n2tai (1) - convert TAI64N timestamps to TAI
teepipe (1) - copy stdin to a program and stdout

ucspi-tcp

20 manuals

addcr (1) - inserts a CR (015) before each LF (012)
argv0 (1) - runs a program with a specified 0th argument.
date@ (1) - prints the date on a remote host.
delcr (1) - removes a CR (015) at the end of each line of input, if a CR is present.
dotls (1) - Generic TLS/SSL protocol wrapper for non-TLS programs
finger@ (1) - gets user information from a remote host.
fixcrio (1) - inserts missing CRs at the ends of lines.
http@ (1) - gets a web page from a remote host.
instcheck-ucspi-tcp (1) - create directories, create/copy files, named pipes and devices
mconnect (1) - connects to a remote SMTP server.
mconnect-io (1) - connects to a remote SMTP server.
rblsmtpd (1) - blocks mail from RBL-listed sites for any SMTP server that can run under tcpserver (1)
recordio (1) - records the input and output of a program.
tcpcat (1) - prints data from a remote host.
tcpclient (1) - creates an outgoing TLS/non-TLS TCP IPv4/IPv6 connection.
tcprules (1) - compiles rules for tcpserver (1).
tcprulescheck (1) - checks tcprules
tcpserver (1) - accept incoming TCP IPv4/IPv6, UNIX and TLS/non-TLS connections
uinstaller (1) - create directories, create/copy files, named pipes and devices
who@ (1) - prints the list of active users on a remote host.

indimail-mta

101 manuals

822addr (1) - extract 822 headers with values from email.
822body (1) - print the body of a mail message
822bodyfilter (1) - filter message body through a program.
822date (1) - print the date in a mail message
822field (1) - print the value of a header field in a mail message
822fields (1) - extract 822 field values from email headers.
822header (1) - print the header of a mail message
822headerfilter (1) - filter message header through a program.
822headerok (1) - Check if email message header is 822-compliant.
822print (1) - print a mail message
822received (1) - print the Received fields in a mail message
authcram (1) - Generate Response to a CRAM method challenge
autoresponder (1) - Rate and time limited autoresponder for qmail/indimail
batv (1) - Bounce Address Tag Validation Tester for indimail-mta
bouncesaying (1) - perhaps bounce each incoming message
cdbdump (1) - read cdb in stdin and print database in cdbmake format.
cdbget (1) - search for records in cdb
cdbgetm (1) - search for multiple records matching a key in cdb
cdbmake (1) - write cdb by reading series of encoded records on input
cdbmake-12 (1) - write cdb by reading key value pair records on input
cdbmake-sv (1) - write cdb by reading /etc/services records on input
cdbstats (1) - read cdb on stdin and print statistics
cdbtest (1) - read cdb on stdin and test it.
checkaddr (1) - match address in 822addr output
checkdomain (1) - match domain in 822addr output
cidr (1) - convert an ip Range to CIDR
columnt (1) - align columns in a table
condredirect (1) - perhaps redirect mail to another address
condtomaildir (1) - feed message to program and perhaps store message
datemail (1) - insert local time in RFC 822 Date header before injecting mail
dnsblcheck (1) - check ip address in DNS blacklist database
dnscname (1) - do CNAME dns lookup for a FQDN
dnsfq (1) - retrieve PTR record for a fqdn
dnsmxip (1) - retrieve mail exchanger records for a fqdn
dnsptr (1) - do a PTR lookup and display retrieved fqdn
dnstlsarr (1) - DANE/TLSA RR Tester. Display TLSA RR record for a host
dot-forward (1) - read a dot-forward file under qmail
drate (1) - rate control email delivery for domains
except (1) - reverse the exit code of a program
fastforward (1) - forward mail according to a cdb database
filterit (1) - Filter incoming mails based on email headers
filterto (1) - perhaps redirect mail to another address
forward (1) - forward new mail to one or more addresses.
ifaddr (1) - check if address appears in a field in a message.
iftocc (1) - check for blind carbon copies
iftoccfrom (1) - check if recipient is listed in To, CC or From field in a message
inewaliases (1) - create a forwarding database from /etc/aliases
instcheck-indimail-mta (1) - create directories, create/copy files, named pipes and devices
maildir2mbox (1) - move mail from a maildir to an mbox
maildircmd (1) - pipe a maildir through a command
maildirdeliver (1) - deliver a mail message to a maildir
maildirqmtp (1) - send a maildir through QMTP
maildirserial (1) - send a maildir through a client
maildirsize (1) - print Maildir++ quota usage of a Maildir
maildirsmtp (1) - send a maildir through SMTP
mailsubj (1) - send a mail message with a subject line
make-recipients (1) - Make recipient addresses for RECIPIENTS extension.
matchup (1) - collect information on messages and deliveries
mbox2maildir (1) - move mail from a mbox to a maildir
new-inject (1) - preprocess a mail message
newinclude (1) - create a binary mailing list from an :include: file
plugtest (1) - test qmail-smtpd plugins
predate (1) - prepend RFC 822 compliant Date header to data
preline (1) - prepend lines to message
printass (1) - print users/assign, users/cdb entries
printforward (1) - print the instructions in a forwarding database
printmaillist (1) - print the contents of a binary mailing list
qaes (1) - qmail/IndiMail AES Encryption/Decryption Utility
qarf (1) - qmail/IndiMail Abuse Report Format Generator
qbase64 (1) - base64 encode/decode data and print to standard output
qcat (1) - concatenate files and print on the standard output
qdane (1) - qmail DANE/TLSA RR verification daemon
qfrontend (1) - frontend for executing qmail-qfilter filters
qmail-qfilter (1) - front end for qmail-queue that does filtering
qmail-rm (1) - Remove mails from Queue
qmaildirmake (1) - create a maildir for incoming mail
qmaildirwatch (1) - look for new mail in a maildir
qnotify (1) - respond to Message Disposition Notifications
qreceipt (1) - respond to delivery notice requests
qtop (1) - display queue load for indimail-mta (qscheduler) running in IPC mode
relaytest (1) - test if a host is an open relay
replier (1) - In dot-qmail, run a program to reply to an address
replier-config (1) - The replier-config Program
rrforward (1) - round-robin message delivery
rrt (1) - respond to Return Receipts
serialcmd (1) - Pipe files through a command
serialqmtp (1) - blast files across QMTP
serialsmtp (1) - blast files across SMTP
setforward (1) - create a forwarding database
setmaillist (1) - create a binary mailing list
spfquery (1) - SPF query tool
srsfilter (1) - in dot-qmail filter messages using SRS
swaks (1) - SMTP transaction tester
tcp-env (1) - set up TCP-related environment variables
test-recipients (1) - Test Recipients in MySQL or via RECIPIENTS extension.
uacl (1) - test qmail-smtpd access list
udpclient (1) - log messages via UDP
uenv (1) - run a program with environment modified according to files in $HOME/.defaultqueue
xqp (1) - locate a message given its qp
xrecipient (1) - locate all deliveries to one recipient
xsender (1) - locate all messages from one sender

indimail-virtualdomains

49 manuals

altermime (1) - MIME encoded email pack alteration tool
crc (1) - checksum files
crcdiff (1) - compare two crc lists and report the difference
flash (1) - Secure Host Interface - A menu shell with hotkeys and process group management
formail (1) - mail (re)formatter
fortune (1) - print a random, hopefully interesting, adage
incrmesg (1) - Display incremental messages in log files
incrypt (1) - command line implementation of crypt(3)
initsvc (1) - Enable / Disable IndiMail services
ischema (1) - indimail database schema updater
ismaildup (1) - Duplicate Email eliminator
iwebadmin (1) - CGI program for indimail administration frontend
lockfile (1) - conditional semaphore-file creator
logclient (1) - Send incremental messages in local logfiles to a remote log server.
mailstat (1) - shows mail-arrival statistics
mpack (1) - pack a file in MIME format
munpack (1) - unpack messages in MIME or split-uuencode format
printdir (1) - display directory structure layout for a virtual domain
procmail (1) - autonomous mail processor
qmailmrtg (1) - log indimail statistics to MRTG
randstr (1) - fetch a random text string from a specified file
ripmime (1) - email attachment / decomposition tool.
ripole (1) - extracts attachments from OLE2 data files (ie, M$ Office docs)
rot (1) - Encruypt/Decrypt using rot13
strfile (1) - create a random access file for storing strings
unstr (1) - dump strings in pointer order
vaddaliasdomain (1) - Create an domain aliased to an existing virtual domain
vadddomain (1) - Create a virtual domain
vadduser (1) - Add a new user to a virtual domain
valias (1) - add/modify/delete alias for virtual users
vatrn (1) - Enable ATRN domain for On Demand Mail Relay (ODMR)
vbulletin (1) - instant bulletin for IndiMail
vcfilter (1) - create, modify, delete vfilters
vdeldomain (1) - Delete a virtual domain
vdeluser (1) - remove a user from a virtual domain
vdominfo (1) - Display domain information for virtual domains
vgroup (1) - create distribution groups for set of users in a virtual domain
vipmap (1) - maps an ip address to a virtual domain
vlimit (1) - Set / Modify Domain wide Limits
vmoddomain (1) - Modify delivery instruction for a virtual domain or set domain limits
vmoduser (1) - Modify virtual user attributes
vmoveuserdir (1) - move homedir of a virtual user to a new path
vpasswd (1) - change passwd for virtual domain user
vrenamedomain (1) - rename a virtual domain or an alias_domain to a new name
vrenameuser (1) - change email address of a virtual user to a new email address
vserverinfo (1) - Display server info of a node in a IndiMail cluster
vsetuserquota (1) - Set quota for a user in a virtual domain
vtable (1) - create MySQL table from text file templates
vuserinfo (1) - display attributes for a virtual user

indimail-spamfilter

8 manuals

bf_compact (1) - shell script to compact a bogofilter directory
bf_copy (1) - shell script to copy a bogofilter working directory
bf_tar (1) - shell script to write a tar file of a bogofilter directory to stdout
bogofilter (1) - fast Bayesian spam filter
bogolexer (1) - Utility program for separating email messages into tokens
bogotune (1) - find optimum parameter settings for bogofilter
bogoupgrade (1) - upgrades bogofilter database to current version
bogoutil (1) - Dumps, loads, and maintains bogofilter database files

courier-imap

15 manuals

authenumerate (1) - enumerate courier-imap accounts
authtest (1) - Test courier-imap authentication modules
courierlogins (1) - Display stats for POP3/IMAP logins from log files
couriertcpd (1) - the Courier mail server TCP server daemon
couriertls (1) - the Courier mail server TLS/SSL protocol wrapper
mailbot (1) - A MIME-aware autoresponder utility
maildiracl (1) - manage access control lists
maildirkw (1) - set maildir message keywords
maildirmake (1) - create maildirs and maildir folders
maildirwatch (1) - wait for changes to a maildir
maildrop (1) - mail delivery filter/agent
makedat (1) - create GDBM/DB files for maildrop
reformail (1) - E-mail reformatting tool
sharedindexinstall (1) - Installs the shared index files
sharedindexsplit (1) - Splits a shared index file into multiple ones

fetchmail

2 manuals

fetchmail (1) - fetch mail from a POP, IMAP, ETRN, or ODMR-capable server
fetchmailconf (1) - fetch mail from a POP, IMAP, ETRN, or ODMR-capable server

libsrs2

1 manual

srs (1) - command line interface to libsrs2

tinydnssec

17 manuals

dnsfilter (1) - reverse-resolves IP addresses, converting them to host names.
dnsgetroot (1) - (unknown subject)
dnsip (1) - lookup IP addresses
dnsip6 (1) - lookup IP addresses
dnsip6q (1) - dns lookup tool
dnsipq (1) - dns lookup tool
dnsmx (1) - prints the MX records of fqdn
dnsname (1) - does a reverse lookup for the IP address
dnsnamex (1) - does a reverse lookup for the IP address
dnsq (1) - sends a non-recursive DNS query to DNS server
dnsqr (1) - asks for records of type t under the domain name fqdn
dnstrace (1) - dns lookup tool
dnstracesort (1) - dns lookup tool
dnstxt (1) - prints the TXT record of fqdn
instcheck-tinydnssec (1) - create directories, create/copy files, named pipes and devices
random-ip (1) - generate random IP addresses
tinydns-get (1) - is like dnsq(1), but obtains its results from data.cdb in the current directory

ezmlm-idx

33 manuals

ezmlm-accept (1) - accept messages in moderation queue
ezmlm-archive (1) - create thread and author index for a mailing list archive
ezmlm-cgi (1) - provide WWW access to the list archive
ezmlm-check (1) - Mails back results of ezmlm list check
ezmlm-checksub (1) - reject senders not subscribed to a mailing list
ezmlm-clean (1) - clean moderation directory
ezmlm-confirm (1) - process user actions for message confirm and discard
ezmlm-cron (1) - Sets up digest request messages generation via crond
ezmlm-dispatch (1) - Dispatch an email to other ezmlm programs
ezmlm-gate (1) - Gate posts depending on message SENDER
ezmlm-get (1) - handles mailing list archive retrieval and digests
ezmlm-glconf (1) - create config file for global ezmlm-request address
ezmlm-idx (1) - create index for mailing list archive
ezmlm-import (1) - import messages into an ezmlm archive
ezmlm-issubn (1) - test to see if an address is subscribed to a mailing list
ezmlm-limit (1) - Limits traffic to list
ezmlm-list (1) - show the addresses on a mailing list
ezmlm-make (1) - create a new mailing list
ezmlm-manage (1) - automatically manage a mailing list
ezmlm-moderate (1) - process moderator actions for message acceptance and rejection
ezmlm-queue (1) - queue messages using qmail-qmqpc, qmail-multi or qmail-queue
ezmlm-reject (1) - reject messages unsuitable for distribution
ezmlm-request (1) - Process subject line and body ezmlm commands
ezmlm-return (1) - handle mailing list bounces
ezmlm-rmtab (1) - remove the subscriber tables for a mailing list
ezmlm-send (1) - distribute a message to a mailing list
ezmlm-split (1) - distribute (un)subscribe requests to sublists
ezmlm-store (1) - store messages posted to a moderated lists and send moderation requests to the moderator(s).
ezmlm-sub (1) - manually add addresses to a mailing list
ezmlm-tstdig (1) - Tests if a digest should be created
ezmlm-unsub (1) - manually remove addresses from a mailing list
ezmlm-warn (1) - send out bounce warnings
ezmlm-weed (1) - weed out useless messages

Section 8 - System Administration Commands and Daemons

daemontools

22 manuals

docker-entrypoint (8) - entry point for indimail docker/podman images
envdir (8) - run a program with environment modified according to files in a specified directory.
envuidgid (8) - run a program with environment variables indicating a specified account's uid and gid.
fghack (8) - an anti-backgrounding tool.
logselect (8) - select parts of logs created by multilog(8)
minisvc (8) - daemontools mini Service Configuration Tool
multilog (8) - read a sequence of lines from stdin and append selected lines to any number of logs.
pgrphack (8) - run a program in a separate process group.
qmailctl (8) - control / query indimail startup / shutdown
readproctitle (8) - maintains an automatically rotated log in memory for inspection by ps (1).
setlock (8) - runs another program with a file locked.
setuidgid (8) - run a program under a specified account's uid and gid.
softlimit (8) - run a program with new resource limits.
supervise (8) - start and monitor a service.
svc (8) - controls services monitored by supervise(8).
svok (8) - check whether supervise(8) is running.
svscan (8) - start and monitor a collection of services
svscanboot (8) - start svscan in service directories, with output/error logged through multilog / journalctl
svstat (8) - print status of services monitored by supervise(8).
tai64n (8) - put a precise timestamp on each line.
tai64nlocal (8) - convert precise TAI64N timestamp to a human-readable format.
tai64nunix (8) - Convert external TAI64N timestamps to fractional seconds since epoch.

indimail-mta

69 manuals

cdb-database (8) - prepare cdb assignments for ctrlenv
cleanq (8) - clean up qscanq work directory
create_services (8) - IndiMail/indimail-mta Service Creation Tool
ctrlenv (8) - fetch environment from a control file using a key match and run a program
dknewkey (8) - create a new domain key
greydaemon (8) - greylisting daemon
ipmeprint (8) - (unknown subject)
irmail (8) - handle remote mail received via uucp
isendmail (8) - IndiMail to Sendmail compatibility interface
ldap-checkpwd (8) - LDAP checkpassword Interface
mini-smtpd (8) - receive mail via SMTP
mlmatchup (8) - collect information on messages and deliveries through multilog
ofmipd (8) - accept outgoing mail through OFMIP
ofmipname (8) - build a name-address database for ofmipd
qhpsi (8) - queue a mail message for delivery
qmail-cdb (8) - prepare data in cdb format for qmail .
qmail-clean (8) - clean up the queue directory
qmail-command (8) - user-specified mail delivery program
qmail-daned (8) - TLSA Record Checker for IndiMail
qmail-direct (8) - deliver mail message directly to Maildir
qmail-dkim (8) - sign/verify using DKIM (SSP/ADSP optionally) and queue a mail message for delivery
qmail-getpw (8) - give addresses to users
qmail-greyd (8) - greylisting daemon for IndiMail, qmail and netqmail
qmail-inject (8) - preprocess and send a mail message
qmail-internals (8) - Overview of qmail internals
qmail-local (8) - deliver or forward a mail message
qmail-lspawn (8) - schedule local deliveries
qmail-multi (8) - queue multiplexor and filter
qmail-newu (8) - prepare address assignments for qmail-lspawn
qmail-nullqueue (8) - dissapear a message
qmail-popbull (8) - insert bulletins
qmail-poppass (8) - change passwords from across the network using the setpassword interface
qmail-pw2u (8) - build address assignments from a passwd file
qmail-qmqpc (8) - queue a mail message via QMQP
qmail-qmqpd (8) - receive mail via QMQP
qmail-qmtpd (8) - receive mail via QMTP
qmail-qread (8) - list outgoing messages and recipients
qmail-queue (8) - queue a mail message for delivery
qmail-remote (8) - send mail via SMTP / ESMTP or QMTP
qmail-rspawn (8) - schedule remote deliveries
qmail-send (8) - deliver mail messages from the queue with rate control
qmail-showctl (8) - analyze indimail configuration, services and queues
qmail-smtpd (8) - receive mail via SMTP
qmail-spamfilter (8) - spam filter for indimail
qmail-sql (8) - prepare data in MySQL for qmail-smtpd(8) .
qmail-start (8) - turn on mail delivery with fixed number of queues or load dependent dynamic queues
qmail-tcpok (8) - clear TCP timeout table
qmail-tcpto (8) - print TCP timeout table
qmonitor (8) - monitor queue loads and increase it dynamically
qmta-send (8) - standalone mail delivery
qscanq (8) - qmail virus scanner
qscanq-stdin (8) - qmail virus scanner
qscheduler (8) - turn on mail delivery with fixed number of queues or load dependent dynamic queues
queue-fix (8) - Create or Repair a qmail queue structure
rd-remote (8) - Redirect remote mail to another address or a Maildir
run-cleanq (8) - request cleanq to be run
setqload (8) - set queue load manually to dynamically add a new queue
slowq-send (8) - deliver mail messages from the queue with rate control
slowq-start (8) - turn on mail delivery
spawn-filter (8) - qmail-local / qmail-remote interceptor
splogger (8) - make entries in syslog
sql-database (8) - prepare data in MySQL for ctrlenv(8) .
sslerator (8) - TLS/SSL protocol wrapper
surblfilter (8) - qmail SURBL blocklist interface
surblqueue (8) - qmail SURBL blocklist interface
svctool (8) - IndiMail/indimail-mta Service Configuration Tool
sys-checkpwd (8) - indimail-mta checkpassword program for authentication
todo-proc (8) - process todo messages from the queue
udplogger (8) - receive log message from UDP clients and print on stdout

indimail-virtualdomains

39 manuals

nssd (8) - NSS daemon for IndiMail
adminclient (8) - Client for running IndiMail programs remotely
chowkidar (8) - SPAM Guard for IndiMail
clearopensmtp (8) - remove stale IP's authorized for pop before SMTP
dbinfo (8) - Dbinfo Structure Administration
hostcntrl (8) - add, modify, delete hostcntrl entries
hostsync (8) - Synchronize user additions/deletions across cluster
indisrvr (8) - IndiMail administration server
inlookup (8) - Connection Pooling server for Name Lookups
inquerytest (8) - Test InLookup Queries
install_tables (8) - create All IndiMail MySQL tables using builtin templates
ipchange (8) - Modify IP Address records in IndiMail Database
logalert (8) - watch files for specific patterns
logsrv (8) - receive log messages
mgmtpass (8) - Create, Modify Admin Passwords for IndiMail administration
osh (8) - operator shell, a privileged restricted shell
pam-multi (8) - PAM module supporting multiple configurable methods
postdel (8) - deliver mail to a user in a virtual domain using postfix
proxyimap (8) - IMAP Proxy
proxypop3 (8) - POP3 Proxy
resetquota (8) - resets/corrects maildirquota for a Maildir
rpclog (8) - RPC based log collector
showbytes (8) - receive log messages
tcplookup (8) - TCP/IP frontend for inlookup
updaterules (8) - Rebuild tcp.smtp.cdb with list of static ip stored in tcprules
vacation (8) - auto responder for virtual domain user
vcalias (8) - convert .qmail to IndiMail valias database
vcaliasrev (8) - convert IndiMail valias database to .qmail
vchkpass (8) - checkpassword program for IndiMail authentication
vdelivermail (8) - deliver mails to users in a virtual domain
vdeloldusers (8) - remove inactive users
vfilter (8) - Filter capable MDA for IndiMail
vfstab (8) - Filesystem balancing Utility
vhostid (8) - Add, Modify, Delete, Display IndiMail hostid mapping
vpriv (8) - Set privilege for admin user to run IndiMail commands
vproxy (8) - Generic Proxy
vreorg (8) - Recreate Directory Structure Layout for a virtual domain
vsetpass (8) - change passwords from across the network using the setpassword interface
vsmtp (8) - Setup artificial routes for qmail-remote

courier-imap

9 manuals

deliverquota (8) - deliver to a maildir with a quota
imapd (8) - The Courier IMAP server
imaplogin (8) - The Courier IMAP server
makeimapaccess (8) - Build IMAP server access file
mkdhparams (8) - create DH parameter file
mkimapdcert (8) - create a test SSL certificate for IMAP over SSL
mkpop3dcert (8) - create a test SSL certificate for POP3 over SSL
pop3d (8) - The Courier POP3 server
pop3login (8) - The Courier POP3 server

libdkim2

1 manual

dkim (8) - exercise the domainkeys library

tinydnssec

21 manuals

axfr-get (8) - a DNS zone-transfer client.
axfrdns (8) - a DNS zone-transfer server.
axfrdns-conf (8) - sets up a DNS zone-transfer service.
curvedns (8) - A DNSCurve-capable forwarding DNS server
curvedns-conf (8) - sets up a DNSCurve capable forwarding service.
curvedns-keygen (8) - Generate private/public key pair for curvedns(8)
dnscache (8) - a DNS cache.
dnscache-conf (8) - sets up a DNS cache service.
pickdns (8) - A load-balancing DNS server.
pickdns-conf (8) - sets up a load-balancing DNS publication service.
pickdns-data (8) - Data tool for pickdns
rbldns (8) - an IP-address-listing DNS server
rbldns-conf (8) - sets up an IP-address-listing DNS service.
rbldns-data (8) - data tool for rbldns
tinydns (8) - a DNS server.
tinydns-conf (8) - sets up a DNS publication service.
tinydns-data (8) - data tool for tinydns
tinydns-edit (8) - edit the (source form of the) database served by tinydns/axfrdns
tinydns-sign (8) - Signs records in tinydns-data(8) files
walldns (8) - a reverse DNS wall
walldns-conf (8) - sets up a DNS wall service.

Section 5 - File Formats and Conventions

indimail-mta

13 manuals

qmtp (5) - Quick Mail Transfer Protocol
addresses (5) - formats for Internet mail addresses
dot-qmail (5) - control the delivery of mail messages
envelopes (5) - sender/recipient lists attached to messages
indimail-control (5) - indimail configuration files
indimail-srs (5) - indimail srs configuration files
maildir (5) - directory for incoming mail messages
mbox (5) - file containing mail messages
qmail-header (5) - format of a mail message
qmail-log (5) - the qmail activity record
qmail-users (5) - assign mail addresses to users
rewriting (5) - syntactic changes to mail-address host names
tcp-environ (5) - TCP-related environment variables

indimail-virtualdomains

4 manuals

nssd.conf (5) - NSS database configuration for nssd
procmailex (5) - procmail rcfile examples
procmailrc (5) - procmail rcfile
procmailsc (5) - procmail weighted scoring technique

tinydnssec

2 manuals

dnscache-log (5) - Format of the dnscache log
qualification (5) - User's guide to name qualification

ezmlm-idx

4 manuals

ezmlm (5) - format of ezmlm directory
ezmlmglrc (5) - set up the global ezmlm interface
ezmlmrc (5) - ezmlm-make configuration file
ezmlmsubrc (5) - set up a minimal sublist

Section 7 - Miscellaneous

indimail-mta

8 manuals

forgeries (7) - how easy it is to forge mail
indimail-env (7) - indimail-mta environment variables
indimail-mta (7) - overview of indimail-mta documentation
indimail-mta-internals (7) - Explain internals of indimail-mta
indimail-services (7) - Overview of IndiMail Services
multi-queue (7) - indimail's multi queue architecture
qmail-limits (7) - artificial limits in the qmail system
qmail-queue-clients (7) - use qmail-queue / qmail-queue frontend to process messages

indimail-virtualdomains

1 manual

indimail (7) - A Multi-host distributed Mail Server

courier-imap

8 manuals

authindi (7) - Courier Authentication Library
authlib (7) - Courier Authentication Library
authpam (7) - Courier Authentication Library
authshadow (7) - Courier Authentication Library
maildirquota (7) - voluntary Maildir quotas
maildropex (7) - maildrop filtering language examples
maildropfilter (7) - maildrop's filtering language
maildropgdbm (7) - GDBM/DB support in maildrop

tinydnssec

1 manual

djbdns (7) - overview

Section 3 - Library Functions

indimail-mta

4 manuals

qerror (3) - syscall error codes
greylist (3) - query qmail-greyd for greylisted records
plugin_init (3) - Template for Dynamic SMTP Plugins
tlsacheck (3) - query qmail-daned for TLSA domain verification

indimail-virtualdomains

1 manual

login_tasks (3) - perform set of important tasks on login

libqmail

166 manuals

add_of (3) - add two integers, check for arithmetic overflow
alloc (3) - allocate memory
array (3) - The array library interface
array_allocate (3) - make sure array has at least n elements allocated
array_bytes (3) - get number of allocated members in array
array_cat (3) - append one array to another
array_cat0 (3) - append 0 byte to an array
array_catb (3) - append bytes to an array
array_cate (3) - append subset of one array to another array
array_cats (3) - append C string to an array
array_cats0 (3) - append C string to an array
array_equal (3) - compare two arrays for equality
array_fail (3) - switch array to have failed
array_get (3) - get pointer to nth element in array
array_length (3) - get number of allocated members in array
array_reset (3) - deallocate array
array_start (3) - get pointer to first element in array
array_trunc (3) - reduce number of initialized bytes
array_truncate (3) - reduce number of initialized bytes
assign (3) - assign an integer value, check for truncation
buffer (3) - generic read/write buffering
byte (3) - The byte library interface
caldate (3) - calendar dates
caldate_mjd (3) - manipulate calendar dates
caltime (3) - calendar dates and times
caltime_tai (3) - convert calendar dates and times
case (3) - convert ASCII uppercase bytes to lowercase
cdb (3) - read from a constant database
coe (3) - set close-on-exec flag for a descriptor
commands (3) - read and obey n-terminated commands
config (3) - read optional configuration data
constmap (3) - create, search constant search maps
datetime (3) - convert between TAI labels and seconds
direntry (3) - read directory entries
env (3) - manage the environment
error_str (3) - names for syscall error codes
error_temp (3) - identify soft syscall error codes
fd_copy (3) - duplicate a descriptor
fd_move (3) - renumber a descriptor
fifo_make (3) - create a named pipe
fmt_8long (3) - write an octal ASCII representation of an unsigned long integer
fmt_asn1derlength (3) - encode unsigned integer like ASN.1 DER length
fmt_asn1dertag (3) - encode unsigned integer like ASN.1 DER tag
fmt_double (3) - write an ASCII representation of a double
fmt_fill (3) - append spaces to a string
fmt_int (3) - write an ASCII representation of an integer
fmt_long (3) - write an ASCII representation of a long integer
fmt_minus (3) - write '-' for negative integers
fmt_pad (3) - pad a string with spaces.
fmt_plusminus (3) - write '+' or '-'
fmt_ulonglong (3) - write an ASCII representation of an unsigned long long integer
fmt_utf8 (3) - encode 31-bit unsigned integer using UTF-8 rules
getln (3) - read one line of data
getln2 (3) - read one line of data
grpscan (3) - return array of groups to which the user belongs
iarray_allocate (3) - get pointer to nth element in iarray
iarray_free (3) - free iarray data structure
iarray_get (3) - get pointer to nth element in iarray
iarray_init (3) - initialize iarray data structure
imult16 (3) - integer multiplication with overflow checking
imult32 (3) - integer multiplication with overflow checking
imult64 (3) - integer multiplication with overflow checking
iopause (3) - stateful handling of events based on the poll interface or file descriptors
leapsecs (3) - handle UTC leap seconds
mess822 (3) - parse a mail message header in RFC 822 format
mess822_addr (3) - extract addresses from an RFC 822 field
mess822_date (3) - print a timestamp in RFC 822 format
mess822_fold (3) - wrap lines in an RFC 822 field
mess822_quote (3) - encode mail addresses in an RFC 822 field
mess822_token (3) - tokenize an RFC 822 field
mess822_when (3) - extract a timestamp from an RFC 822 field
now (3) - get current time, in seconds
qendgrent (3) - get group file entry
qendpwent (3) - get password file entry
qgetservbyname (3) - get service entry
qgetgrent (3) - get group file entry
qgetgrent_r (3) - get group file entry reentrantly
qgetgrgid (3) - get group file entry
qgetgrgid_r (3) - get group file entry
qgetgrnam (3) - get group file entry
qgetgrnam_r (3) - get group file entry
qgetpwent (3) - get password file entry
qgetpwent_r (3) - get passwd file entry reentrantly
qgetpwnam (3) - get password file entry
qgetpwuid (3) - get password file entry
qgetpwuid_r (3) - get password file entry
qgetservbyname_r (3) - get service entry (reentrant)
qgetservbyport (3) - get service entry
qgetservbyport_r (3) - get service entry (reentrant)
qgetservent (3) - get service entry
qgetservent_r (3) - get service entry (reentrant)
qprintf (3) - formatted output conversion
qsetgrent (3) - get group file entry
qsetpwent (3) - get password file entry
qsnprintf (3) - formatted output conversion
qtime (3) - transform date and time to ASCII
range_ptrinbuf (3) - range check pointer in buffer
range_str2inbuf (3) - range check for string in buffer
range_str4inbuf (3) - range check for string in buffer
range_strinbuf (3) - range check for string in buffer
range_validbuf (3) - range check buffer
rewritehost (3) - make syntactic changes to host names
scan_8long (3) - parse an unsigned long integer in octal ASCII representation
scan_double (3) - parse a floating point number in decimal ASCII representation
scan_int (3) - parse an integer in decimal ASCII representation
scan_long (3) - parse an long integer in decimal ASCII representation
scan_plusminus (3) - parse '+' or '-'
scan_uint (3) - parse an unsigned integer in decimal ASCII representation
scan_ulong (3) - parse an unsigned long integer in decimal ASCII representation
scan_ulonglong (3) - parse an unsigned long integer in decimal ASCII representation
scan_ushort (3) - parse an unsigned short integer in decimal ASCII representation
scan_xlong (3) - parse an unsigned long integer in hexadecimal ASCII representation
setuser_privileges (3) - set user identity
setuserid (3) - set user identity
sgetopt (3) - get option character from command line
str_chr (3) - find character in ASCIIZ string
str_copy (3) - copy an ASCIIZ string
str_diff (3) - compare two ASCIIZ strings
str_diffn (3) - compare two ASCIIZ strings
str_len (3) - find length of ASCIIZ string
str_rchr (3) - find character in ASCIIZ string
str_start (3) - compare prefixes of strings
str_str (3) - locate a substring
str_tok (3) - extract tokens from strings
sub_of (3) - subtract two integers, check for arithmetic overflow
subgetopt (3) - get option character from command line
subprintf (3) - formatted output conversion
substdio (3) - the Sub-Standard Input/Output Library
substdio_copy (3) - copy an entire input to output
substdio_in (3) - substdio input routines
substdio_out (3) - substdio output routines
tai (3) - manipulate times with 1-second precision
tai_add (3) - add two struct tai
tai_approx (3) - return double-precision approximation
tai_less (3) - compare two struct tai
tai_now (3) - get current time, with 1-second precision
tai_pack (3) - convert TAI64 labels to external format
tai_sub (3) - subtract two struct tai
tai_unpack (3) - convert to external TAI64 format
taia (3) - manipulate times with 1-attosecond precision
taia_addsec (3) - add n seconds to a struct taia
taia_now (3) - get current time, with 1-attosecond precision
taia_pack (3) - convert TAI64NA labels to external format
taia_unpack (3) - convert to external TAI64NA format
uint16_pack (3) - write an unsigned little-endian 16-bit integer
uint16_pack_big (3) - write an unsigned big-endian 16-bit integer
uint16_read (3) - read an unsigned little-endian 16-bit integer
uint16_read_big (3) - read an unsigned big-endian 16-bit integer
uint16_unpack (3) - read an unsigned little-endian 16-bit integer
uint16_unpack_big (3) - read an unsigned big-endian 16-bit integer
uint32_pack (3) - write an unsigned little-endian 32-bit integer
uint32_pack_big (3) - write an unsigned big-endian 32-bit integer
uint32_read (3) - read an unsigned little-endian 32-bit integer
uint32_read_big (3) - read an unsigned big-endian 32-bit integer
uint32_unpack (3) - read an unsigned little-endian 32-bit integer
uint32_unpack_big (3) - read an unsigned big-endian 32-bit integer
uint64_pack (3) - write an unsigned little-endian 64-bit integer
uint64_pack_big (3) - write an unsigned big-endian 64-bit integer
uint64_read (3) - read an unsigned little-endian 64-bit integer
uint64_read_big (3) - read an unsigned big-endian 64-bit integer
uint64_unpack (3) - read an unsigned little-endian 64-bit integer
uint64_unpack_big (3) - read an unsigned big-endian 64-bit integer
umult16 (3) - integer multiplication with overflow checking
umult32 (3) - integer multiplication with overflow checking
umult64 (3) - integer multiplication with overflow checking
wait (3) - check child process status

ezmlm-idx

1 manual

stralloc (3) - dynamically allocated strings

MISCELLANEOUS

man2md Source Code

#!/bin/sh
# man2md: Convert entire set of indimail man pages to github markdown
# this script cycles through all of indimail's source directories
# and uses the make command to install just the man pages
# it then uses sorcery to convert them into github markdown
# License: GPLv2

# $Id: man2md,v 1.4 2023-12-31 18:21:35+05:30 Cprogrammer Exp mbhangui $

# $Log: man2md,v $
# Revision 1.4  2023-12-31 18:21:35+05:30  Cprogrammer
# moved pages to indimail org
#
# Revision 1.3  2022-09-12 23:32:52+05:30  Cprogrammer
# fixed typo
#
# Revision 1.2  2022-09-04 17:59:17+05:30  Cprogrammer
# fixed SEE ALSO links
#
# Revision 1.1  2022-09-02 18:04:17+05:30  Cprogrammer
# Initial revision
#

install_man_pages()
{
	/bin/rm -rf $base/wikis/man
	mkdir -p $base/wikis/man/usr/share/man
	for i in 1 3 5 7 8
	do
		mkdir -p $base/wikis/man/man"$i"
	done
	cd $base/wikis/man/usr/share/man
	for i in 1 3 5 7 8
	do
		ln -s $base/wikis/man/man"$i"
	done
	for i in daemontools ucspi-tcp indimail-mta
	do
		cd $base/indimail-mta/$i-x
		echo cd $base/indimail-mta/$i-x
		make -s
		make MAN
		./installer $base/wikis/man < MAN > /dev/null
	done
	for i in libdkim2 libsrs2
	do
		echo cd $base/indimail-mta/$i-x
		cd $base/indimail-mta/$i-x
		make -s DESTDIR=$base/wikis/man install-man >/dev/null
	done
	echo cd $base/libqmail
	cd $base/libqmail
	make DESTDIR=$base/wikis/man install-man >/dev/null

	echo cd $base/tinydnssec/tinydnssec-x
	cd $base/tinydnssec/tinydnssec-x
	make -s man
	./installer $base/wikis/man < MAN > /dev/null
	cd $base/tinydnssec/tinydnssec-x/curvedns-0.88
	make -s DESTDIR=$base/wikis/man install-man >/dev/null

	echo cd $base/ezmlm-idx/ezmlm-idx-x
	cd $base/ezmlm-idx/ezmlm-idx-x
	make -s man
	./installer $base/wikis/man < MAN > /dev/null

	for i in indimail altermime flash fortune iwebadmin \
		logalert mpack nssd pam-multi procmail ripmime fetchmail
	do
		echo cd $base/indimail-virtualdomains/$i-x
		cd $base/indimail-virtualdomains/$i-x
		make -s DESTDIR=$base/wikis/man install-man >/dev/null
	done
	cd $base/indimail-virtualdomains/indimail-spamfilter-x/doc
	make -s DESTDIR=$base/wikis/man install-man >/dev/null

	for i in authlib imap liblock maildir maildrop rfc2045 \
		rfc822 tcpd
	do
		echo cd $base/indimail-virtualdomains/courier-imap-x/libs/$i
		cd $base/indimail-virtualdomains/courier-imap-x/libs/$i
		make -s DESTDIR=$base/wikis/man install-man >/dev/null
	done
	cd $base/wikis/man
	for i in $(find . -type f -exec grep -l "^\.so" {} \;)
	do
		fn=$(basename $i)
		file=$(cat $i |awk '{print $2}')
		/bin/rm -f $i
		fdir=$(dirname $file)
		cd $base/wikis/man/$fdir
		ln $base/wikis/man/$file $fn
		cd $base/wikis/man
	done
	/bin/rm -f $base/wikis/man/man5/rfc-*
	cd $base/wikis
}

put_hyperlink()
{
	if [ $# -eq 2 ] ; then
		comma=","
	else
		comma=""
	fi
	sanitized=$(echo $1|sed -e 's/*//g')
	topic=$(echo $sanitized | cut -d '(' -f1)
	section=$(echo $sanitized | cut -d '(' -f2 | sed -e 's/)//')
	if [ -f man/man"$section"/$topic.$section ] ; then
		echo "[$topic($section)]($url/$topic.$section)$comma"
	else
		echo $sanitized
	fi
}

fix_see_also()
{
set -f
flag=0
sed -n '/^# SEE ALSO/I,$p' | while IFS= read -r "see_also"; do
	echo $see_also|grep -i "^# SEE ALSO" >/dev/null
	if [ $? -eq 0 ] ; then
		flag=1
		echo "$see_also"
		continue
	fi
	if [ $flag -eq 1 ] ; then
		IFS=", "
		arr=($see_also)
		count=${#arr[@]}
		i=1
		for t in ${arr[*]}
		do
			if [ $i -lt $count ] ; then
				put_hyperlink $t ","
			else
				put_hyperlink $t
			fi
		done
	else
		echo "$see_also"
	fi
done
set +f
}

base=/usr/local/src
url="https://github.com/indimail/indimail-mta/wiki"
/bin/rm -rf manpages
echo "Installing man pages"
install_man_pages
/bin/rm -f man/man7/IndiMail.7
/bin/rm -f man/man8/InLookup.8
for i in 1 3 5 7 8
do
	mkdir -p manpages/man"$i"
done

echo "Converting manpages to markdown"
find $base/wikis/man -type f -print | while read line
do
	fn=$(basename $line | sed -e 's{.[0-9]${{')
	md_dir=$(dirname $line | sed -e 's/man/manpages/')
	section=$(basename $md_dir | cut -c4-)
	printf "\rConverting %-30s" $(basename $line)
	pandoc --from man --to gfm < $line > tmp.md
	(
	sed '/^# SEE ALSO/IQ' tmp.md
	cat tmp.md | fix_see_also
	) > $md_dir/$fn.$section.md
done
/bin/rm -f tmp.md
printf "\r%-30s\n" "Done"

echo "Creating man db index"
env MANPATH=/usr/local/src/wikis/man mandb -qps ./man

echo "Creating Home.md"
for i in 1 3 5 7 8
do
	/bin/rm -f daemontools.$i.md ucspi-tcp.$i.md indimail-mta.$i.md indimail-virtualdomains.$i.md \
		indimail-spamfilter.$i.md courier-imap.$i.md libdkim2.$i.md libsrs2.$i.md libqmail.$i.md \
		fetchmail.$i.md tinydnssec.$i.md ezmlm-idx.$i.md unknown.$i.md
done
for i in 1 3 5 7 8
do
	env MANPATH=/usr/local/src/wikis/man man -k "" | grep "($i)" | while read line
	do
		set $line
		topic1=$1
		echo "$line" | grep "$1 ($i)" >/dev/null
		if [ $? -ne 0 ] ; then
			continue
		fi
		topic2=$(echo $1 | sed -e 's{_{\\_{g')
		if [ $? -ne 0 ] ; then
			break
		fi
		shift 3
		if [ -f $base/indimail-mta/daemontools-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> daemontools.$i.md
			continue
		elif [ -f $base/indimail-mta/ucspi-tcp-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> ucspi-tcp.$i.md
			continue
		elif [ -f $base/indimail-mta/indimail-mta-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> indimail-mta.$i.md
			continue
		elif [ -f $base/indimail-mta/libdkim2-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> libdkim2.$i.md
			continue
		elif [ -f $base/indimail-mta/libsrs2-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> libsrs2.$i.md
			continue
		elif [ -f $base/tinydnssec/tinydnssec-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> tinydnssec.$i.md
			continue
		elif [ -f $base/tinydnssec/tinydnssec-x/curvedns-0.88/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> tinydnssec.$i.md
			continue
		elif [ -f $base/ezmlm-idx/ezmlm-idx-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> ezmlm-idx.$i.md
			continue
		elif [ -f $base/libqmail/base/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> libqmail.$i.md
			continue
		elif [ -f $base/libqmail/array/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> libqmail.$i.md
			continue
		elif [ -f $base/libqmail/mult/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> libqmail.$i.md
			continue
		elif [ -f $base/libqmail/textcode/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> libqmail.$i.md
			continue
		elif [ -f $base/indimail-virtualdomains/indimail-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> indimail-virtualdomains.$i.md
			continue
		elif [ -f $base/indimail-virtualdomains/altermime-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> indimail-virtualdomains.$i.md
			continue
		elif [ -f $base/indimail-virtualdomains/ripmime-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> indimail-virtualdomains.$i.md
			continue
		elif [ -f $base/indimail-virtualdomains/flash-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> indimail-virtualdomains.$i.md
			continue
		elif [ -f $base/indimail-virtualdomains/fortune-x/$topic1.man ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> indimail-virtualdomains.$i.md
			continue
		elif [ -f $base/indimail-virtualdomains/mpack-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> indimail-virtualdomains.$i.md
			continue
		elif [ -f $base/indimail-virtualdomains/iwebadmin-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> indimail-virtualdomains.$i.md
			continue
		elif [ -f $base/indimail-virtualdomains/logalert-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> indimail-virtualdomains.$i.md
			continue
		elif [ -f $base/indimail-virtualdomains/nssd-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> indimail-virtualdomains.$i.md
			continue
		elif [ -f $base/indimail-virtualdomains/pam-multi-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> indimail-virtualdomains.$i.md
			continue
		elif [ -f $base/indimail-virtualdomains/procmail-x/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> indimail-virtualdomains.$i.md
			continue
		elif [ -f $base/indimail-virtualdomains/indimail-spamfilter-x/doc/$topic1.$i ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> indimail-spamfilter.$i.md
			continue
		elif [ -f $base/indimail-virtualdomains/fetchmail-x/$topic1.man ] ; then
			echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> fetchmail.$i.md
			continue
		fi
		found=0
		for j in authlib imap liblock maildir maildrop rfc2045 rfc822 tcpd
		do
			if [ -f $base/indimail-virtualdomains/courier-imap-x/libs/$j/$topic1.$i ] ; then
				echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> courier-imap.$i.md
				found=1
				break
			fi
		done
		if [ $found -eq 1 ] ; then
			continue
		fi
		echo "[$topic2 ($i)]($url/$topic1.$i) - $*  " >> unknown.$i.md
	done
done
/bin/rm -f Home.md
total_count=$(wc -l *.[1,5,7,8].md | grep total| awk '{print $1}')
api_count=$(wc -l *.3.md | grep total| awk '{print $1}')
(
echo "# INTRODUCTION"
echo ""
echo "This page documents $total_count manuals for indimail, indimail-mta and associated software, and $api_count manuals for API. They are listed under the below standard man page sections. These manuals have been converted from the original UNIX man pages using [pandoc](https://pandoc.org/). This page and the conversion to markdown have been done using a script named \`man2md\`. If your project has large number of man pages, you can use man2md to generate the markdown formatted pages and upload them to github. It is provided 'as is' with no implied warranty. You will have to modify it for your project"
echo ""
echo " [Section 1 - General Commands](#section-1---general-commands)  "
echo " [Section 8 - System Administration Commands and Daemons](#section-8---system-administration-commands-and-daemons)  "
echo " [Section 5 - File Formats and Conventions](#section-5---file-formats-and-conventions)  "
echo " [Section 7 - Miscellaneous](#section-7---miscellaneous)  "
echo " [Section 3 - Library Functions](#section-3---library-functions)  "
echo " [man2md source code](#man2md-source-code)"
echo ""
for i in 1 8 5 7 3
do
	echo -n "## Section $i - "
	case $i in
		1)
		echo "General Commands"
		;;
		3)
		echo "Library Functions"
		;;
		5)
		echo "File Formats and Conventions"
		;;
		7)
		echo "Miscellaneous"
		;;
		8)
		echo "System Administration Commands and Daemons"
		;;
	esac
	echo ""
	for j in daemontools ucspi-tcp indimail-mta indimail-virtualdomains \
		indimail-spamfilter courier-imap fetchmail libdkim2 libsrs2 libqmail \
		tinydnssec ezmlm-idx
	do
		if [ -s $j.$i.md ] ; then
			count=$(wc -l $j.$i.md | awk '{print $1}')
			echo "### $j"
			if [ $count -eq 1 ] ; then
				echo "$count manual  "
			else
				echo "$count manuals  "
			fi
			echo ""
			cat $j.$i.md
			echo "  "
		fi
		rm -f $j.$i.md
	done
done
echo "# MISCELLANEOUS"
echo ""
echo "## man2md Source Code"
echo ""
echo "\`\`\`"
cat $0
echo "\`\`\`"
) > Home.md
found=0
for i in 1 3 5 7 8
do
	if [ -f unknown.$i.md ] ; then
		echo "WARNING!!! Could not classify below manual/manuals in section $i"
		cat unknown.$i.md
		found=1
	fi
done
if [ $found -eq 0 ] ; then
	echo "Hip Hip Hurray"
	/bin/rm -rf man
fi