Posted to tcl by evilotto at Mon Mar 18 18:40:15 GMT 2013view pretty
#!/usr/bin/tclsh package require sqlite3 sqlite3 db directory.db3 set dbvalues { firstname "First" lastname "last" gender "Unspecified" uuid "1 1A 2B" } namespace eval ::commands { proc add {} { dict with ::dbvalues { db eval {INSERT INTO contacts(firstName, lastName, gender, contactUUID) VALUES($fistname, $lastname, $gender, $uuid)} } } # warning: defining a "list" command can be dangerous proc list {} { db eval {SELECT firstName, lastName, gender, dateOfBirth AS DOB, contactUUID AS UUID FROM contacts} values { parray values puts "" } } } set command [lindex $argv 0] foreach {flag value} [lrange $argv 1 end] { switch -exact -- $flag { -f - --first-name {dict set dbvalues firstname $value} -m - --middle-name {dict set dbvalues middlename $value} -l - --last-name {dict set dbvalues lastname $value} -g - --gender {dict set dbvalues gender $value} default {error "Unkown flag! Please modify the command."} } } ::commands::$command