X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/0868840155aca9662f97318b114a07ae4c8319d6..1638d5a206cd79e9619f0d3334fed29eaddc6b51:/src/domain.sig diff --git a/src/domain.sig b/src/domain.sig index be9bd8b..a8de0de 100644 --- a/src/domain.sig +++ b/src/domain.sig @@ -26,6 +26,7 @@ signature DOMAIN = sig val validDomain : string -> bool val yourDomain : string -> bool val validUser : string -> bool + val validEmailUser : string -> bool val ip : string Env.arg @@ -49,6 +50,20 @@ signature DOMAIN = sig (* Open one of the current domain's configuration files for a particular * node. *) + val currentAliasDomains : unit -> string list + val currentDomains : unit -> string list + (* Return the auxiliary domains being configured (not including + * currentDomain) or the list of all domains being configured, + * respectively. *) + + (* The type of a set of files open for different domains. *) + type files = {write : string -> unit, (* Write a string to each. *) + writeDom : unit -> unit, (* Write each's domain name to it. *) + close : unit -> unit} (* Close all files. *) + + val domainsFile : {node : string, name : string} -> files + (* Open a configuration file for every domain being configured. *) + val dnsMaster : unit -> string option (* Name of the node that is the DNS master for the current domain, if there * is one *) @@ -77,4 +92,24 @@ signature DOMAIN = sig val hasPriv : string -> bool val rmdom : string list -> unit + val rmdom' : string -> string list -> unit + + val homedirOf : string -> string + val homedir : unit -> string + + type subject = {node : string, domain : string} + + val registerDescriber : (subject -> string) -> unit + (* When a user runs [domtool-admin describe $DOM], every function passed to + * [registerDescriber] will be run on [$DOM]. *) + val describe : string -> string + (* Argument is domain to describe, over all nodes. *) + + datatype description = + Filename of { filename : string, heading : string, showEmpty : bool } + | Extension of { extension : string, heading : string -> string } + + val considerAll : description list -> subject -> string + (* Find files in a domain directory matching some patterns and generate + * headings and contents listings for them. *) end