Initial README describing how the program should work
Added simple test script

This test server can be started with 'node example/test.js'.

Currently it is very simple, it just prints out the process id back
to the requester. One the console it logs the PID, URL and the
connection's socket's file descriptor.

Once a baseline of the server is in place, this will use the file
descriptor passed in by node-launcher, rather than creating the
socket.
Skeleton source code committed

A skeleton main file has been added. This will start and just
exec a hard coded example command line.

A simple Makefile is added. The output is in the out/ directory.

Made it clear that the work is licensed under the MIT license,
with an appropriate LICENSE file.

.gitignore added to ignore the out/ directory.
Basic support for respawning a server when it fails.

Only a single server at a time is supported. If it ever crashes it
is simply respawned.

Updated README documentation to explain the respawn functionality
as a feature.
Implement basic socket creation code

A socket is now created at startup (with hard coded parameters for
now). The example now uses the passed in file descriptor, rather
rathen creating a new socket.
Basic respawn functionality

Implements and demonstrates basic respawn functionality.
Initial stub of config parser

This add str.c (with associated header and Makefile rules). str.c
provides some useful string handling functions that make parsing
the config file easier than with standard C library routines.

A skeleton of the config file parsing routines is implemented.
Ensure config file is closed.

We should close the config file after using it.
Improve build dependencies

The Makefile itself as well as any header files are added as build
deps for the node-launcher binary.
Improve documentation of str.c functions

Added documentation in C file.

Removed unnecessary parameters names in prototype.
Added additional string helper functions.

str_copy: safe string copy routine
str_concat: safe string concatenation routine
str_uint16: safe uint16 parser
str_int: safe integer parser
str_isempty: simple helper function
Improve documentation and example

Remove empty line from end of example/test.js
Add TODO section to the README.
Update example config to match the spec.
Change description of how command line flags are passed to the server.
Implement command and socket config support.

command line is now expected from the config file.
socket descriptors are now read from the config file.
--fd arguments are now correctly passed to the server.
Some unnecessary debug output removed.
Improve error handling of server spawn

If the config file doesn't specify a command then it is an error.
If the shell fails to spawn the command, then quit rather than
respawning forever.
Add basic command line parsing

config file now read from command line
-d 'debug' mode flag now read from command line.
TODO section updated to reflect daemonize behaviour is still TDB.
Added Ctrl-C to restart functionality.

When running node-launcherd in debug mode, ctrl-c will kill
the existing server(s) and restart them.

If Ctrl-C is pressed twice within a second, it will kill
node-launcherd entirely.
Add experimental spawn-too-fast logic.

When debugging, if the server crashes within the first second,
chances are good that it will keep crashing. To counter this we
stop node-launcherd is we spawn more than once per second
(in debug mode).
Conditionalise spawn too fast support

The spawning too fast support doesn't work very well in practise.
In production mode it fails to respawn when it should; in debug mode
respawn on error has proved to be not a very useful model.

For now it has been conditionalised, but may be removed completely in
the future.
Make respawn happen in production mode only.

When debugging it is not useful for the server to automatically
respawn, so disable this behaviour.
Add daemonization feature

In production mode, we want node-launcher to daemonize. In enabling
daemonize we must also enable the use of syslog.