The current unnamed project goes by the working title of
Clipcode, which is a vague, shoe-horned acronym for what it
does and is intended for.
It's a very very basic command-line program, which is not
interactive. It is not "an application" by any stretch of the
imagination; rather, it is intended for use in shell scripts (if
you didn't know that term, you might not be able to grasp how
this thing is used), where you
want to be able to control various things with some sort of
configuration file as opposed to hard-coding them or asking
the user directly, but have no obvious quick-and-easy way
of parsing it to get the settings. This is a command
to get those settings in the quick-and-easy way for your
Hence, you get quickly-written programs by using simple
scripts (or certain other programming languages), yet your
program can still be extremely flexible and so much more
useful, and you don't have to work out stupid ways to
do configuration files yourself.
I also made the command accept various flags, to
let it also do other operations than extracting values
from the configuration file (which is a simple set of
key-value pairs in a hand-editable text file). It can
also list all keys in the file, add a new key, write
a value into an existing key, delete a key, or validate
the configuration file. As such, you could use the command
in conjunction with some sort of user-friendly front-end in order
to create and alter the configuration files too!
I came to write the program in the course of making my
site-building framework, "MMSS". I had
decided to make it a generic system, so it'd be useful to
people other than myself, but this needed things like the
hostname and username for uploading to my site to not
be hardcoded into the scripts (which automatically upload
pages that have been updated). I also felt it'd be desirable
to have such things as page colour, etc settable by the user,
and due to the nature of the m4 macros for generating
the HTML pages, this would be even harder for users
to change if they wanted to. Hell, it even was hard for me!
So it became obvious that a simple command that could be
used in thees various situations could extract values from
all sorts of different keys in a file, and this would be
immensely useful. I saw many different software libraries and
things for dealing with configuration options in C programs,
etc, but no actual commands as such. So I made this, it didn't
take too long, and it works pretty damned well in numerous
different situations, opening up all sorts of doorways IMO.
The only thing that bothers me is that
such a thing didn't seem to exist before. Perhaps other people
found it simple enough to do with tools like sed or
languages like perl, but maybe others didn't, and made
inflexible scripts because of it.
In case people had been getting by by using other more complicated
scripting solutions, I'll give a quick example of usage, taken
from the upload command I put in MMSS:
ftp-upload --host `clipcode host.cfg ftphost` --user `clipcode host.cfg
user` ... ...
That simple enough? Now, if you understood what this program does,
how it is used, and why it is useful, then maybe you'll be able to
come up with a proper name for it. If you didn't really
understand it, you might still come up with something suitable
anyway (but you should bear in mind that "configure" is already taken,
for something quite different).
Tomble, February 2004
UPDATE, March 2004: It occurred to me since writing this that you
can have your scripts source smaller shell scripts that simply set
environment variables. However, I'm not convinced that these are as
good as what "clipcode" gives you, as clipcode allows you to manipulate
them too. So OK, it's a little diminished in value, but I still
think it's useful.