Commit | Line | Data |
---|---|---|
629a34f6 AC |
1 | (* HCoop Domtool (http://hcoop.sourceforge.net/) |
2 | * Copyright (c) 2006, Adam Chlipala | |
3 | * | |
4 | * This program is free software; you can redistribute it and/or | |
5 | * modify it under the terms of the GNU General Public License | |
6 | * as published by the Free Software Foundation; either version 2 | |
7 | * of the License, or (at your option) any later version. | |
8 | * | |
9 | * This program is distributed in the hope that it will be useful, | |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | * GNU General Public License for more details. | |
13 | * | |
14 | * You should have received a copy of the GNU General Public License | |
15 | * along with this program; if not, write to the Free Software | |
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
17 | *) | |
18 | ||
d612d62c | 19 | (* Code for receiving and executing configuration files *) |
629a34f6 | 20 | |
d612d62c | 21 | signature SLAVE = sig |
629a34f6 | 22 | |
d612d62c AC |
23 | datatype file_action = |
24 | Add | |
25 | | Delete | |
26 | | Modify | |
27 | ||
28 | type file_status = {action : file_action, | |
29 | domain : string, | |
6ae327f8 | 30 | dir : string, |
d612d62c AC |
31 | file : string} |
32 | ||
33 | val registerFileHandler : (file_status -> unit) -> unit | |
34 | (* Register a function to be called when a result configuration file's | |
35 | * status has changed. Registered handlers are called in the reverse order | |
36 | * from registration order. *) | |
37 | ||
38 | val registerPreHandler : (unit -> unit) -> unit | |
39 | val registerPostHandler : (unit -> unit) -> unit | |
40 | (* Register code to run before or after making all changes. *) | |
41 | ||
42 | val handleChanges : file_status list -> unit | |
8df2e702 AC |
43 | |
44 | val shell : string list -> bool | |
45 | val shellF : string list * (string -> string) -> unit | |
46 | ||
47 | val concatTo : (string -> bool) -> string -> unit | |
48 | (* Search through the result configuration hierarchy for all files matching | |
49 | * the predicate, concatenating their contents in arbitrary order to the | |
50 | * given file. *) | |
ed9fda3a AC |
51 | |
52 | val enumerateTo : (string -> bool) -> string -> string -> unit | |
53 | (* Search through the result configuration hierarchy for all files matching | |
54 | * the predicate, writing a list of their domains to the file named by the | |
55 | * third argument, delimiting the entries with the second argument. *) | |
6e62228d AC |
56 | |
57 | val hostname : unit -> string | |
58 | (* Get hostname of this machine *) | |
7db53a0b AC |
59 | |
60 | val readList : string -> string list | |
61 | val writeList : string * string list -> unit | |
62 | (* Reading and writing lists of strings stored on separate lines in files *) | |
629a34f6 | 63 | end |