diff options
Diffstat (limited to 'appl/cmd/nsbuild.b')
| -rw-r--r-- | appl/cmd/nsbuild.b | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/appl/cmd/nsbuild.b b/appl/cmd/nsbuild.b new file mode 100644 index 00000000..36c5b86a --- /dev/null +++ b/appl/cmd/nsbuild.b @@ -0,0 +1,41 @@ +implement Nsbuild; + +include "sys.m"; + sys: Sys; +include "draw.m"; + +include "newns.m"; + +stderr: ref Sys->FD; + +Nsbuild: module +{ + init: fn(ctxt: ref Draw->Context, argv: list of string); +}; + +init(nil: ref Draw->Context, argv: list of string) +{ + sys = load Sys Sys->PATH; + stderr = sys->fildes(2); + + ns := load Newns "/dis/lib/newns.dis"; + if(ns == nil) { + sys->fprint(stderr, "nsbuild: can't load %s: %r", Newns->PATH); + raise "fail:load"; + } + + if(len argv > 2) { + sys->fprint(stderr, "Usage: nsbuild [nsfile]\n"); + raise "fail:usage"; + } + + nsfile := "namespace"; + if(len argv == 2) + nsfile = hd tl argv; + + e := ns->newns(nil, nsfile); + if(e != ""){ + sys->fprint(stderr, "nsbuild: error building namespace: %s\n", e); + raise "fail:newns"; + } +} |
