/errno

A web service providing errno references for a number of operating systems either as an interactive web page or a JSON API.

Primary LanguagePerlOtherNOASSERTION

errno

A web service providing errno references for a number of operating systems either as an interactive web page or a JSON API.

Building

From the source directory, run:

$ make server=http://my.server.domain all

This will generate the webapp, perl/errno, and a zip file, errno.zip for you to unpack on your webserver. The archive contains both the webapp and an image, images/little_hal.jpg. The HTML template, errno.html assumes that the image will be installed into a directory called /images under your webroot. If this is not the case, edit the template and correct the CSS.

Details

The assembly script, errnogen, munges the JSON data files and the template files errno.html and errno.pl.template into a single script file, errno.

Deploying

The built errno script can either run as a standalone CGI application or using Apache::Registry. Copy it to the relevant directory (for example, /var/www/cgi-bin or /var/www/perl) and it should work without any additional configuration. If you're not using Apache, then simply copy it into the CGI directory for your server.

Using

The webapp has errno data for three operating systems, linux, macosx and windows. To view the info as an HTML page, navigate to /path/to/errno/<os>, for example /path/to/errno/linux. To view the info as JSON, add json to the path, for example /path/to/errno/linux/json. To use it as a JSONP API, add a query string with a callback parameter, for example, /path/to/errno/linux/json?callback=window.errorInfo.

Customizing

If you want to add errno information for another operating system, copy the errno2json script onto the target system and capture its output, for example:

/path/to/errno2json >openbsd.json

The script assumes a gcc compiler. If you use another compiler, you will need to hack the script. It shouldn't be difficult: just find the bit that says gcc -E and convert it to the invocation that produces preprocessor output on your system.

errno2json requires the JSON Perl module to be installed.

Copy the json file into your source directory. Edit errno.pl.template to add the OS to the name map:

my %osNames = (
    linux => "Linux",
    macosx => "Mac OS X",
    windows => "Windows",
    freebsd => "FreeBSD",
    openbsd => "OpenBSD"
);

Now simply rebuild. The new JSON file will be picked up automatically.

Try It Out!

Point your browser at my server.

Licencing

errno is licensed under the Apache 2.0 licence.