X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/1638d5a206cd79e9619f0d3334fed29eaddc6b51..2462aefc2f65464b9f2812d7c01b81c03d4ab9ff:/src/slave.sml diff --git a/src/slave.sml b/src/slave.sml index 01d872c..ba31da8 100644 --- a/src/slave.sml +++ b/src/slave.sml @@ -82,6 +82,25 @@ fun shellF (ss, msg) = ErrorMsg.error NONE (msg s) end +fun shellOutput ss = + let + val proc = Unix.execute ("/bin/bash", ["-c", String.concat ss ^ " 2>&1"]) + val inf = Unix.textInstreamOf proc + + fun loop out = + case TextIO.inputLine inf of + NONE => String.concat (rev out) + | SOME line => loop (line :: out) + + val lines = loop [] + in + print lines; + if OS.Process.isSuccess (Unix.reap proc) then + NONE + else + SOME lines + end + fun hostname () = let val inf = TextIO.openIn "/etc/hostname"