1 (* HCoop
Domtool (http
://hcoop
.sourceforge
.net
/)
2 * Copyright (c
) 2014 Clinton Ebadi
<clinton@unknownlamer
.org
>
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
.
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
.
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
.
19 (* Configuration Value Queries
*)
21 (* Not entirely clear what belongs here
and what belongs
in
24 Proposed dividing line
: whatever can be deduced from the static
25 configuration can be queried
with domtool
-config
, anything that
26 requires acessing the daemons goes through domtool
-admin
.
29 fun println x
= (print x
; print
"\n")
30 fun printerr x
= (TextIO.output (TextIO.stdErr
, x
); TextIO.flushOut
TextIO.stdErr
)
31 fun die reason
= (printerr reason
; printerr
"\n"; OS
.Process
.exit OS
.Process
.failure
)
34 (case CommandLine
.arguments () of
35 ("-path" :: path
) => (case path
of
36 ["shared-root"] => println Config
.sharedRoot
37 |
["local-root"] => println Config
.localRoot
38 |
["install-prefix"] => println Config
.installPrefix
39 |
["cert", path
] => (case path
of
40 "ca" => println Config
.caDir
41 |
"certs" => println Config
.certDir
42 |
"keys" => println Config
.keyDir
43 |
"truststore" => println Config
.trustStore
44 | _
=> die
"Invalid cert path type")
45 |
["vmaildb"] => println Config
.Vmail
.userDatabase
46 | _
=> die
"Invalid path type")
47 |
["-nodes"] => (app (fn (n
, _
, _
) => (print n
; print
" ")) Config
.nodeIps
;
49 |
["-domain"] => println Config
.defaultDomain
50 | _
=> die
"Invalid command-line arguments")