TOCRC(0)
π TOCRC(0) π
okay bestie, so you wanna know about TOCRC(0)? it's giving iconic shell script energy, and honestly? it's a whole mood. this is the manual page for tocrc, a script that builds table of contents files for man pages. no cap, it's lowkey genius. let me break it down for you π
β¨ what it does β¨
so like, this script is a shell script that makes tocx files for all sections (1 through 8) and everything else. it also makes a permuted index and toc files. it uses /usr/libexec/getNAME, sed, ptx, grep, and some shell magic. first it sets a temp file /tmp/toc$$ and traps signals 2, 3, 15 to clean up and exit. then it checks if tocx8 exists β if not, it loops over sections 1-8 and runs /usr/libexec/getNAME -t \cat man$x`piped throughsedwith a bunch of expressions to createtocx$x. then it cats tocx*andcshcmdinto/tmp/cattoc. then it runs ptx -r -t -b break -f -w 108 -i ignore /tmp/cattoc ptxx. there's a note: if that fails, try gptxfrom GNU coreutils (pkgsrc/sysutils/coreutils). then for each section 1-8, it grepsΛintrofromtocx$xinto$tmp, then uses sedto do some transformations, and writes the result totoc$x`. finally, it exits. periodt. π
π the script itself π
here's the whole script, verbatim. every single line, every comment, every hyphen β it's all here. don't @ me, it's a lot but it's iconic. π
#!/bin/sh β # # $NetBSD: tocrc,v 1.4 2004/03/31 02:10:00
snj Exp $ # # Copyright (c) 1993 # The Regents of the Uniβ
versity of California. All rights reserved. # # Redistribution
and use in source and binary forms, with or without # modificaβ
tion, are permitted provided that the following conditions # are
met: # 1. Redistributions of source code must retain the above
copyright # notice, this list of conditions and the following
disclaimer. # 2. Redistributions in binary form must reproduce
the above copyright # notice, this list of conditions and the
following disclaimer in the # documentation and/or other mateβ
rials provided with the distribution. # 3. All advertising mateβ
rials mentioning features or use of this software # must disβ
play the following acknowledgement: # This product includes
software developed by the University of # California,
Berkeley and its contributors. # 4. Neither the name of the Uniβ
versity nor the names of its contributors # may be used to enβ
dorse or promote products derived from this software # without
specific prior written permission. # # THIS SOFTWARE IS PROVIDED
BY THE REGENTS AND CONTRIBUTORS ββAS ISββ AND # ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURβ
POSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBβ
UTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILβ
ITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF # SUCH DAMAGE. # # @(#)tocrc 8.2
(Berkeley) 5/5/94 # tmp=/tmp/toc$$ trap "rm $tmp ; exit" 2 3 15 :
tocx files for all sections and everything else
if [ ! βf tocx8 ]; then for x in 1 2 3 4 5 6 7 8; do
/usr/libexec/getNAME βt βcat man$xβ |
sed βe
βs/.sβ2//gβ βe βs/.sβ1//gβ
βe βs/.s0//gβ
βe βs/.s+1//gβ
βe βs/ *.β */: /β
βe βs/ *$/./β
βe βs/.TH.* //β
βe βs/@g@//β
βe βs/@G@//β >
tocx$x done fi : permuted index and toc files
cat tocx* cshcmd > /tmp/cattoc
# If this fails, try gptx from GNU coreutils (pkgsrc/sysuβ
tils/coreutils) ptx βr βt βb break βf βw 108 βi ignore /tmp/catβ
toc ptxx
for x in 1 2 3 4 5 6 7 8; do grep βΛintroβ <tocx$x >$tmp
sed βe β2,${β βe β/Λintro/dβ
βe β}β βe βs/ .*://β βe
βs/.$//β βe βs/([Λ)]*) /" "/β βe
βs/.*/.xx "&"/β βe β/""/dβ $tmp tocx$x
>toc$x done exit
π sign-off π
and that's the tea! this script is from NetBSD, version 1.4, dated 2004/03/31, by snj. also big shoutout to the Berkeley version 8.2 from 5/5/94. the copyright is the full BSD license, so you know it's legit. periodt. πβ¨π
π¦ where this page comes from
- nixpkgs unstable: netbsd-source 11.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms