Posted to tcl by evilotto at Mon Mar 18 18:40:15 GMT 2013view raw

  1. #!/usr/bin/tclsh
  2. package require sqlite3
  3.  
  4. sqlite3 db directory.db3
  5.  
  6. set dbvalues {
  7. firstname "First"
  8. lastname "last"
  9. gender "Unspecified"
  10. uuid "1 1A 2B"
  11. }
  12.  
  13. namespace eval ::commands {
  14. proc add {} {
  15. dict with ::dbvalues {
  16. db eval {INSERT INTO contacts(firstName, lastName, gender, contactUUID) VALUES($fistname, $lastname, $gender, $uuid)}
  17. }
  18. }
  19.  
  20. # warning: defining a "list" command can be dangerous
  21. proc list {} {
  22. db eval {SELECT firstName, lastName, gender, dateOfBirth AS DOB, contactUUID AS UUID FROM contacts} values {
  23. parray values
  24. puts ""
  25. }
  26. }
  27.  
  28. }
  29.  
  30. set command [lindex $argv 0]
  31. foreach {flag value} [lrange $argv 1 end] {
  32. switch -exact -- $flag {
  33. -f - --first-name {dict set dbvalues firstname $value}
  34. -m - --middle-name {dict set dbvalues middlename $value}
  35. -l - --last-name {dict set dbvalues lastname $value}
  36. -g - --gender {dict set dbvalues gender $value}
  37. default {error "Unkown flag! Please modify the command."}
  38. }
  39. }
  40.  
  41. ::commands::$command