Tcl – Unibase Tcl support library

Unibase has tclsh linked in to the binaries and Tcl is our preferred scripting language. NB Other languages can be used, this isn’t exclusive.

Tcl script are supported by a Tcl package called “unibase”. To use this package simply add “package require unibase” at the start of a Tcl script.

All procedures are in the ::unibase namespace or a subspace of it.

Here are the top level namespaces (alphabetically):

  • cookie – manage http cookies
  • http – http helper proceures
  • httpd – httpd helper procedures
  • recaptchav3 – get the recaptcha key for a URL
  • log – log errors or other info to the system logs
  • session – set up and maintain a Unibase session
  • users – get user details for application security

Commands (alphabetically with their namespaces):

  • ::unibase::getflags {COMMAND FLAGS}
    • process command line arguments in a similar format to standard Linux commands.
    • RETURN
      • Processed flags in ::UB_FLAGS
      • Unprocessed arguments in ::UB_FLAGS::_GLOBAL
      • return 1 on success
      • return 0 on error
    • ERROR
      • Print ::UB_FLAGS::_USAGE:
  • ::unibase::cookie {}
    • Manage cookies
  • ::unibase::cookie::unset {COOKIE}
    • Unset COOKIE
  • ::unibase::http
    • http helper functions
  • ::unibase::http::content {}
    • Output an http Content-Type string and cache-control.
  • ::unibase::httpd
    • Helper functions for cgi scripts
  • ::unibase::httpd::argument {FLAG VARIABLE}
    • Add VARIABLE to the flags for a command to be called
  • ::unibase::httpd::cookies {}
    • Put cookies into the environment
  • ::unibase::httpd::header {}
    • Same as ::unibase::http::content
  • ::unibase::httpd::sessionClear {}
    • clear session info in preparation for a new session
  • ::unibase::httpd::ubqs {QUERY_STRING}
    • decode QUERY_STRING
  • ::unibase::recaptchav3::get
    • get the private key for a Unibase web application
  • ::unibase::recaptcahv3::update {URL KEY}
    • update the private key for a Unibase web application
  • ::unibase::log
    • Add something to the system logs
  • ::unibase::log::debug {type msg}
    • add a message with key to system logs
  • ::unibase::log::log {type msg}
    • add a message with key to system logs
  • ::unibase::session::create {USER APPLICATION}
    • create a new user session in the Unibase session directory
  • ::unibase::session::destroy {}
    • Destroy the current session file
  • ::unibase::session::env {}
    • put the current session variables into the environment
  • ::unibase::session::json {}
    • return the current session variables as JSON
  • ::unibase::session::valid {}
    • check if the current session is valid
  • ::unibase::session::value {VAR} – get value of a session variable
  • ::unibase::session::var {VAR VALUE} – add var VAR to the session with value VALUE
  • ::unibase::users::attribute {USER APPLICATION ATTRIBUTE} – get an attribute from the users table for USER in application APPLICATION
  • ::unibase::users::password {APPLICATION USER PASSWORD} – check a password for a user using APPLICATION
  • ::unibase::users::salt {PASSWORD} – get salt from a password
  • ::unibase::users::update {USER APPLICATION ATTRIBUTE VALUE} – Update the value of an attribute for a user