portal: return success/failure of changing vmail password
[hcoop/domtool2.git] / src / main.sig
index 7197f36..bea8247 100644 (file)
 
 signature MAIN = sig
 
-    val tInit : unit -> Ast.typ
-    val registerDefault : string * Ast.typ * Ast.exp -> unit
+    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 -> 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 * 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 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}
+                                    -> OS.Process.status
+    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