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
val request : string -> 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 requestSlavePing : unit -> OS.Process.status
+ val requestSlaveShutdown : unit -> unit
val service : unit -> unit
val slave : unit -> unit
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} -> 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,
val requestSaSet : string * bool -> unit
val requestSmtpLog : string -> unit
+
+ val requestMysqlFixperms : unit -> unit
+
+ val requestApt : {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
end