Initial domtool-config tool
authorClinton Ebadi <clinton@unknownlamer.org>
Wed, 16 Apr 2014 17:46:33 +0000 (13:46 -0400)
committerClinton Ebadi <clinton@unknownlamer.org>
Wed, 16 Apr 2014 17:46:33 +0000 (13:46 -0400)
Query static configuration information from domtool at run time. Will
be used for new installation bootstrap and make install.

Makefile
src/main-config.sml [new file with mode: 0644]

index e23ac72..f9ebab0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -121,6 +121,10 @@ src/fwtool.mlb: src/prefix.mlb src/sources src/suffix.mlb
        $(MAKE_MLB_BASE) >src/fwtool.mlb
        echo "main-fwtool.sml" >>src/fwtool.mlb
 
        $(MAKE_MLB_BASE) >src/fwtool.mlb
        echo "main-fwtool.sml" >>src/fwtool.mlb
 
+src/domtool-config.mlb: src/prefix.mlb src/sources src/suffix.mlb
+       $(MAKE_MLB_BASE) >src/domtool-config.mlb
+       echo "main-config.sml" >>src/domtool-config.mlb
+
 openssl/smlnj/FFI/libssl.h.cm: openssl/openssl_sml.h
        cd openssl/smlnj ; ml-nlffigen -d FFI -lh LibsslH.libh -include ../libssl-h.sml \
        -cm libssl.h.cm -D__builtin_va_list="void*" \
 openssl/smlnj/FFI/libssl.h.cm: openssl/openssl_sml.h
        cd openssl/smlnj ; ml-nlffigen -d FFI -lh LibsslH.libh -include ../libssl-h.sml \
        -cm libssl.h.cm -D__builtin_va_list="void*" \
@@ -208,6 +212,9 @@ bin/webbw: $(COMMON_MLTON_DEPS) src/stats/webbw.mlb src/stats/*.sml
 bin/domtool-tail: $(COMMON_MLTON_DEPS) src/tail/tail.mlb src/tail/*.sml
        mlton -output bin/domtool-tail src/tail/tail.mlb
 
 bin/domtool-tail: $(COMMON_MLTON_DEPS) src/tail/tail.mlb src/tail/*.sml
        mlton -output bin/domtool-tail src/tail/tail.mlb
 
+bin/domtool-config: $(COMMON_MLTON_DEPS) src/domtool-config.mlb src/main-config.sml
+       $(MLTON) -output bin/domtool-config src/domtool-config.mlb
+
 elisp/domtool-tables.el: lib/*.dtl bin/domtool-doc
        bin/domtool-doc -basis -emacs >$@
 
 elisp/domtool-tables.el: lib/*.dtl bin/domtool-doc
        bin/domtool-doc -basis -emacs >$@
 
@@ -244,6 +251,7 @@ install: install_sos
        -cp bin/webbw /usr/local/sbin/
        -cp bin/domtool-tail /usr/local/bin/
        -chmod +s /usr/local/bin/domtool-tail
        -cp bin/webbw /usr/local/sbin/
        -cp bin/domtool-tail /usr/local/bin/
        -chmod +s /usr/local/bin/domtool-tail
+       cp bin/domtool-config /usr/local/bin/
        cp src/plugins/domtool-postgres /usr/local/sbin/
        cp src/plugins/domtool-mysql /usr/local/sbin/
        -mkdir -p $(EMACS_DIR)
        cp src/plugins/domtool-postgres /usr/local/sbin/
        cp src/plugins/domtool-mysql /usr/local/sbin/
        -mkdir -p $(EMACS_DIR)
diff --git a/src/main-config.sml b/src/main-config.sml
new file mode 100644 (file)
index 0000000..93eef2a
--- /dev/null
@@ -0,0 +1,38 @@
+(* HCoop Domtool (http://hcoop.sourceforge.net/)
+ * Copyright (c) 2014 Clinton Ebadi <clinton@unknownlamer.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *)
+
+(* Configuration Value Queries *)
+
+(* Not entirely clear what belongs here and what belongs in
+   domtool-admin.
+
+   Proposed dividing line: whatever can be deduced from the static
+   configuration can be queried with domtool-config, anything that
+   requires acessing the daemons goes through domtool-admin. 
+*)
+
+fun println x = (print x; print "\n")
+
+val _ =
+    (case CommandLine.arguments () of 
+       ["-path", path] => (case path of
+                               "shared-root" => println Config.sharedRoot
+                             | "local-root" => println Config.localRoot
+                             | "install-prefix" => println Config.installPrefix
+                             | _ => print "Invalid path type\n")
+      | _ => print "Invalid command-line arguments\n")