X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/d541c6185fb0f426dce0b16e85327b53635169e0..6ee7d8effaa01367374de19205359747f5b099e2:/src/main-dbtool.sml diff --git a/src/main-dbtool.sml b/src/main-dbtool.sml index 98e6e03..32793d7 100644 --- a/src/main-dbtool.sml +++ b/src/main-dbtool.sml @@ -24,7 +24,25 @@ val _ = | dbtype :: rest => case Dbms.lookup dbtype of NONE => print ("Unknown database type " ^ dbtype ^ ".\n") - | _ => + | SOME {getpass, ...} => case rest of - ["adduser"] => Main.requestDbUser dbtype + ["adduser"] => + let + val pass = case getpass of + NONE => SOME NONE + | SOME f => + case f () of + Client.Passwd pass => SOME (SOME pass) + | Client.Aborted => SOME NONE + | Client.Error => NONE + in + case pass of + NONE => () + | SOME pass => Main.requestDbUser {dbtype = dbtype, passwd = pass} + end + | ["createdb", dbname] => + if Dbms.validDbname dbname then + Main.requestDbTable {dbtype = dbtype, dbname = dbname} + else + print ("Invalid database name " ^ dbname ^ ".\n") | _ => print "Invalid command-line arguments\n"