Add vmail command for changing password when you know the current password
[hcoop/domtool2.git] / src / main.sig
index 941b704..fa4d398 100644 (file)
 signature MAIN = sig
 
     val init : unit -> unit
+    val setupUser : unit -> string
 
-    val check : string -> Env.env * Ast.exp option
+    val check : Env.env -> string -> Env.env * Ast.exp option
     val check' : Env.env -> string -> Env.env
-    val checkDir : string -> bool
+    val checkDir : string -> unit
 
     val basis : unit -> Env.env
 
-    val reduce : string -> Ast.exp option
-    val eval : string -> unit
+    val reduce : Env.env -> string -> Env.env * Ast.exp option
+    val eval : Env.env -> Env.env_vars -> string -> Env.env * Env.env_vars
 
-    val request : string -> unit
+    val request : string * string option -> unit
     val requestDir : string -> unit
 
+    val requestPing : unit -> OS.Process.status
+    val requestShutdown : unit -> unit
     val requestGrant : Acl.acl -> unit
     val requestRevoke : Acl.acl -> unit
     val requestListPerms : string -> (string * string list) list option
     val requestWhoHas : {class : string, value : string} -> string list option
-    val requestRmdom : string -> unit
+    val requestRmdom : string list -> unit
+    val requestRegen : unit -> unit
+    val requestRegenTc : unit -> unit
+    val requestRmuser : string -> unit
+    val requestDescribe : string -> unit
+    val requestReUsers : unit -> unit
+
+    val requestSlavePing : unit -> OS.Process.status
+    val requestSlaveShutdown : unit -> unit
 
     val service : unit -> unit
     val slave : unit -> unit
 
+    val listBasis : unit -> string list
     val autodocBasis : string -> unit
 
+    val requestDbUser : {dbtype : string, passwd : string option} -> unit
+    val requestDbPasswd : {dbtype : string, passwd : string} -> unit
+    val requestDbTable : {dbtype : string, dbname : string, encoding : string option} -> unit
+    val requestDbDrop : {dbtype : string, dbname : string} -> unit
+    val requestDbGrant : {dbtype : string, dbname : string} -> unit
+
+    val requestListMailboxes : string -> Vmail.listing
+    val requestNewMailbox : {domain : string, user : string,
+                            passwd : string, mailbox : string} -> unit
+    val requestPasswdMailbox : {domain : string, user : string, passwd : string}
+                              -> unit
+    val requestPortalPasswdMailbox : {domain : string, user : string, oldpasswd : string, newpasswd : string}
+                                    -> unit
+    val requestRmMailbox : {domain : string, user : string} -> unit
+
+    val requestSaQuery : string -> unit
+    val requestSaSet : string * bool -> unit
+
+    val requestSmtpLog : string -> unit
+
+    val requestMysqlFixperms : unit -> unit
+
+    val requestApt : {node : string, pkg : string} -> OS.Process.status
+    val requestAptExists : {node : string, pkg : string} -> OS.Process.status
+    val requestCron : {node : string, uname : string} -> OS.Process.status
+    val requestFtp : {node : string, uname : string} -> OS.Process.status
+    val requestTrustedPath : {node : string, uname : string} -> OS.Process.status
+    val requestSocketPerm : {node : string, uname : string} -> OS.Process.status
+    val requestFirewall : {node : string, uname : string} -> OS.Process.status
+
+    val requestFirewallRegen : string -> OS.Process.status
 end