Change concatTo to use only local node's files
authorAdam Chlipala <adamc@hcoop.net>
Sat, 9 Dec 2006 23:20:31 +0000 (23:20 +0000)
committerAdam Chlipala <adamc@hcoop.net>
Sat, 9 Dec 2006 23:20:31 +0000 (23:20 +0000)
src/main.sml
src/slave.sig
src/slave.sml

index 490f66d..5b9ee57 100644 (file)
@@ -122,15 +122,6 @@ fun eval fname =
 val dispatcher =
     Config.dispatcher ^ ":" ^ Int.toString Config.dispatcherPort
 
-fun hostname () =
-    let
-       val inf = TextIO.openIn "/etc/hostname"
-    in
-       case TextIO.inputLine inf of
-           NONE => (TextIO.closeIn inf; raise Fail "No line in /etc/hostname")
-         | SOME line => (TextIO.closeIn inf; String.substring (line, 0, size line - 1))
-    end
-
 fun request fname =
     let
        val uid = Posix.ProcEnv.getuid ()
@@ -255,7 +246,7 @@ fun service () =
 
 fun slave () =
     let
-       val host = hostname ()
+       val host = Slave.hostname ()
 
        val context = OpenSSL.context (Config.certDir ^ "/" ^ host ^ ".pem",
                                       Config.keyDir ^ "/" ^ host ^ "/key.pem",
index 10d2071..7d78217 100644 (file)
@@ -53,4 +53,7 @@ signature SLAVE = sig
     (* Search through the result configuration hierarchy for all files matching
      * the predicate, writing a list of their domains to the file named by the
      * third argument, delimiting the entries with the second argument. *)
+
+    val hostname : unit -> string
+    (* Get hostname of this machine *)
 end
index b1303b8..fb336ae 100644 (file)
@@ -71,6 +71,15 @@ fun shellF (ss, msg) =
            ErrorMsg.error NONE (msg s)
     end
 
+fun hostname () =
+    let
+       val inf = TextIO.openIn "/etc/hostname"
+    in
+       case TextIO.inputLine inf of
+           NONE => (TextIO.closeIn inf; raise Fail "No line in /etc/hostname")
+         | SOME line => (TextIO.closeIn inf; String.substring (line, 0, size line - 1))
+    end
+
 fun concatTo p fname =
     let
        fun visitDir dname =
@@ -98,7 +107,7 @@ fun concatTo p fname =
            end
     in
        TextIO.closeOut (TextIO.openOut fname);
-       visitDir Config.resultRoot
+       visitDir (OS.Path.joinDirFile {dir = Config.resultRoot, file = hostname ()})
     end
 
 fun enumerateTo p sep fname =
@@ -141,7 +150,7 @@ fun enumerateTo p sep fname =
                loop ()
            end
     in
-       visitDir Config.resultRoot;
+       visitDir (OS.Path.joinDirFile {dir = Config.resultRoot, file = hostname ()});
        TextIO.closeOut outf
     end