32 lines
608 B
Plaintext
32 lines
608 B
Plaintext
implement Hostname;
|
|
|
|
include "sys.m"; sys: Sys;
|
|
include "draw.m";
|
|
|
|
Hostname: module {
|
|
init: fn(nil: ref Draw->Context, nil: list of string);
|
|
};
|
|
|
|
init(nil: ref Draw->Context, nil: list of string)
|
|
{
|
|
sys = load Sys Sys->PATH;
|
|
buf := array[Sys->ATOMICIO] of byte;
|
|
|
|
fd := sys->open("/dev/sysname", Sys->OREAD);
|
|
if(fd == nil)
|
|
die("Couldn't open /dev/sysname");
|
|
|
|
n := sys->read(fd, buf, len buf - 1);
|
|
if(n < 1)
|
|
die("Couldn't read /dev/sysname");
|
|
|
|
buf[n++] = byte '\n';
|
|
sys->write(sys->fildes(1), buf, n);
|
|
}
|
|
|
|
die(s: string)
|
|
{
|
|
sys->fprint(sys->fildes(2), "hostname: %s: %r", s);
|
|
raise "fail:errors";
|
|
}
|