Software

Over the years I’ve written a bunch of software; most of it is small utilities to make shell programming easier or solve a specific problem I’ve had. I don’t know how useful any of this will be to other people, but in the best Free/Open Source Software spirit I can manage, I’m making it available. If you find it useful, great; if not, well, at least no one will accuse me of hoarding my work.

I don’t entirely agree with the GNU Public License, so I’ve come up with a license of my own; I think you’ll find it quite reasonable.

Now then, on to the software …

README
A brief overview of this collection of tools.

INSTALL
The INSTALL file that describes how to build and install these programs.

BACKGROUND
A brief history and “justification” of my tools.

addrtool
Perform common IP address/CIDR/netmask calculations.

asm2install
A script to install the programs in this collection.

baseconv
Convert integers between bases 2, 8, 10, 16, 32, 62, and 64.

dateops
Perform simple date operations like yesterday, tomorrow, five days in the future, etc.

dseq
Print sequences of dates.

edate
POSIX date(1), with extensions (single-digit day, day suffix, epoch seconds, microseconds, and operating on a specified date) and deletions (can’t be used to set the system date), and all done with 100% POSIX-compliant library calls.

getman
Used with hexify (see below).

hd
Display a file in hexadecimal and ASCII.

hexify
Embed plain ASCII man pages inside a C program.

isprint
Check a file for “unprintable” characters.

lstat
A command-line interface to the lstat(2) system call, with lots of options.

mkstemp
A command-line interface to the mkstemp(3) library call.

nthday
Print a selected day of the month.

note
A very simple program for managing notes to myself.

numcmp
Used in shell programming to compare two numbers (because sometimes the shell makes it difficult to deal with negative numbers, and floating point numbers are right out).

simplePath
A script to provide a uniform path for the script in this collection.

st
A very simple program for compiling and printing status reports.

strcmp
strncmp
A command-line interface to the strcmp(3) and strncmp(3) library calls (because neither POSIX test(1) nor sh(1) can do this.

tester
A simple program for testing other programs.

All the software is collected in a single gzipped tar file. Here’s an abbreviated revision history of that file:

2010/01/03 @ 12:50 -0500   first posting
2010/01/04 @ 13:40 -0500   added dseq
2010/01/04 @ 17:09 -0500   added nthday
2010/01/05 @ 12:16 -0500   added hd, fixed bug in pre-printed man page for addrtool
2010/01/10 @ 12:42 -0500   added BACKGROUND, isprint; fixed a minor bug in the man page for edate; changed strcmp and strncmp to print only words (no more numbers, no -v flag)
2010/01/25 @ 18:25 -0500   fixed bugs in isprint, postalworker
2012/01/14 @ 10:44 -0500   removed openCreatExcl, postoffice; added Install_all, asm2install, simplePath, tester; added/updated Makefile for everything; all programs now in separate directories; improved installation scheme; added README files for note, st; added --man to all programs; added features to lstat.