#!bin/jspl

require('DBI', 'DBI');
require('POSIX', 'POSIX', -1);

var drivers = DBI.available_drivers();

say("You have the following DBI drivers available:");
for(var i = 0; i < drivers.length; i++)
    say("\t[" + (i+1) + "] " + drivers[i]);

if(drivers.indexOf('SQLite')) {
    say("Lets test SQLite");
    try {
	var name = POSIX.tmpnam(),
	    dbh = DBI.connect(
	    'dbi:SQLite:dbname='+name, '', '', { 
		RaiseError: true,
		PrintError: false
	});
	say("Database ", name, " created");

	dbh.do("create table colors(name text primary key, feeling text)");

	dbh.do("insert into colors values ('green', 'happy')");
	dbh.do("insert into colors values ('black', 'sad')");

	var all_colors = dbh.selectall_hashref('select * from colors', 'name');
	for(var color in all_colors) {
	    say(color + ' is a ' + all_colors[color].feeling + ' color');
	}
	Sys.unlink(name);
	say('Removed.');
    } catch(e) {
	warn("Ups, something fails: ", e);
    }
}
else {
    say("Sad, you don't have SQLite DBD available.");
}
say("Thats all folks.");