ExternalMaster of string
| InternalMaster of string
-val ip = fn (EApp ((EVar "ip_of_node", _), e), _) => Option.map nodeIp (Env.string e)
- | e => Env.string e
+val ip = Env.string
+
+val _ = Env.registerFunction ("ip_of_node",
+ fn [(EString node, _)] => SOME (EString (nodeIp node), dl)
+ | _ => NONE)
val master = fn (EApp ((EVar "externalMaster", _), e), _) => Option.map ExternalMaster (ip e)
| (EApp ((EVar "internalMaster", _), e), _) => Option.map InternalMaster (Env.string e)
"master" => TextIO.output (outf, "\tallow-update { none; };\n")
| _ => (TextIO.output (outf, "\tmasters { ");
TextIO.output (outf, masterIp);
- TextIO.output (outf, " };\n"));
+ TextIO.output (outf, "; };\n"));
TextIO.output (outf, "};\n");
TextIO.closeOut outf
end