X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/86aa5de7d9f2754d50489432ffaa43cba3fa170f..fe789bea628b15229156c8a4272c2b6063c9b1a0:/src/main-dbtool.sml diff --git a/src/main-dbtool.sml b/src/main-dbtool.sml index a571159..d45d15e 100644 --- a/src/main-dbtool.sml +++ b/src/main-dbtool.sml @@ -18,9 +18,12 @@ (* Driver for dbtool *) +fun badArgs () = + print "Invalid command-line arguments. See documentation at:\n\thttp://wiki.hcoop.net/MemberManual/Databases\n" + val _ = case CommandLine.arguments () of - [] => print "Invalid command-line arguments\n" + [] => badArgs () | dbtype :: rest => case Dbms.lookup dbtype of NONE => print ("Unknown database type " ^ dbtype ^ ".\n") @@ -55,7 +58,24 @@ val _ = end | ["createdb", dbname] => if Dbms.validDbname dbname then - Main.requestDbTable {dbtype = dbtype, dbname = dbname} + Main.requestDbTable {dbtype = dbtype, dbname = dbname, encoding = NONE} + else + print ("Invalid database name " ^ dbname ^ ".\n") + | ["createdb", dbname, encoding] => + if not (Dbms.validDbname dbname) then + print ("Invalid database name " ^ dbname ^ ".\n") + else if not (Dbms.validEncoding (SOME encoding)) then + print ("Invalid encoding name " ^ encoding ^ ".\n") + else + Main.requestDbTable {dbtype = dbtype, dbname = dbname, encoding = SOME encoding} + | ["dropdb", dbname] => + if Dbms.validDbname dbname then + Main.requestDbDrop {dbtype = dbtype, dbname = dbname} + else + print ("Invalid database name " ^ dbname ^ ".\n") + | ["grant", dbname] => + if Dbms.validDbname dbname then + Main.requestDbGrant {dbtype = dbtype, dbname = dbname} else print ("Invalid database name " ^ dbname ^ ".\n") - | _ => print "Invalid command-line arguments\n" + | _ => badArgs ()