This page supplies download for all my scripts, and documentation for some.
Many of these scripts are written in Bourne shell. Of the scripts written in Perl or Python, most depend on my modules. These modules are included in the above tarball (css.tar.gz) in the cs/ subdirectory. You can inspect these modules individually in the lib/cs directory.
Some of these scripts (eg info2pod/info2man) come with little kit tarballs to supply only that script and its needed modules.
Don't forget to see the index for the complete autolist (only a few scripts are described below) and the Change Log for a feel for what's recent.
lock
(manual: lock.1.html)
obtains a lock and then runs a command.
Multihost and NFS-safe, orignally done entirely in shell,
now in perl because high lock contention used to blow the load
average through the roof with the mkdir fork/exec load.
The script note uses this to ensure atomic
access to the log files it writes.
necho: echo without newline.
Just a simple wrapper to make the correct system-dependent
echo(1) incantation for a prompt or progress remark.
Now all my scripts use necho instead of embedding some
non-portable incantation all through them.
cdsubmit
and its subsidiary cddiscinfo
are used for submitting audio CD descriptions
to FreeDB http://www.freedb.org/.
mkcd
and its precursor mkiso
comprise a simple no-brainer data CD burning kit
for those of us who love the command line.
mkwall, to produce a scaled wallpaper from an image.
rootbg, to set the root background from an image.
rbg, to set a root backdrop from an image, keywords or via xplanet.
xpl, a wrapper for xplanet that may be used to set the root background.
pickim and imlist-search,
to choose an image from a collection by keyword.
cvsedit, for making single changes to CVS files.
cvslog2html,
which transcribes the CVS change log to HTML or plain text
(example: CHANGELOG.html).
cvslog, to view the change log at the command prompt.
info2pod converts GNU info data
to POD format [http://www.perldoc.com/perl5.6/pod/perlpod.html]
for easy transcription to various formats like HTML.
info2man is a wrapper for info2pod to convert info files
into nroff -man format.
man
is a replacement for the standard man(1) command
that also knows how to present info files
in the conventional flat-page view,
using info2pod.
bsed is ``batch sed'',
a wrapper for sed which batch edits multiple files,
optionally reporting changes and making backups.
cvsedit, for making single changes to CVS files.
cvslog2html,
which transcribes the CVS change log to HTML or plain text
(example: CHANGELOG.html).
cvslog, to view the change log at the command prompt.
rlr replaces a range of lines in a file
with data from another file or stdin.
The range is delimited by a pair of distinctive lines,
typically specially formatted comment lines in the file to be edited.
apphelper
is a general purpose handler for files downloaded from the web
or presented as email attachments.
I routinely use it with
my mail reader
(mutt http://freshmeat.net/projects/mutt/) for most attachments
and my web browser
(firefox http://www.mozilla.org/products/firefox/)
for things I wish to box view and keep, such as PDFs.
lock
(manual: lock.1.html)
obtains a lock and then runs a command.
Multihost and NFS-safe, orignally done entirely in shell,
now in perl because high lock contention used to blow the load
average through the roof with the mkdir fork/exec load.
The script note uses this to ensure atomic
access to the log files it writes.
mailcap: return the mailcap action for the supplied MIME type.
file2mime: return the MIME type for a file by parsing the output of file(1).
ext2mime: infer MIME type from file extension.
fixexts: correct file extension based on MIME type.
t: do a table of contents of an archive file.
v: view a file using the viewer in the mailcap(5).
x: extract an archive file.
mkwall, to produce a scaled wallpaper from an image.
rootbg, to set the root background from an image.
rbg, to set a root backdrop from an image, keywords or via xplanet.
xpl, a wrapper for xplanet that may be used to set the root background.
pickim and imlist-search,
to choose an image from a collection by keyword.
lz
is a wrapper for lp(1) or lpr(1) or whatever
print facility is native to your system
and accepts text, postscript and PDF as input,
converting all to postscript and delivering to printers
via the native print subsystem.
multips is called internally by lz
to layout multiple logical sheets to a physical sheet.
runmaint
is a wrapper for cron jobs which puts meaningful subject lines on
email containing the output, provides a more complete
environment than cron's fairly spartan one,
and knows about host and frequency specific sub-scripts.
This lets you write a very simple crontab
and move all the complexity into a ~/.maint directory
for easy manipulation.
rc.mobile
this is a startup script
mostly aimed at mobile machines which are booted in different places.
It takes a simple config file
that specifies the services desired and any config files to customise.
Typical use prompts for the current location early in the boot sequence.
rsmirror maintains a mirror of a set of rsync repositories.
syncopt script and its associated work practices
are yet another approach to the standard sysadmin problem
of keeping multiple machines' software installations
up to date.
It is independent of the vendor's packaging scheme
and thus you can use either your vendor's system or syncopt, or both!