diff options
Diffstat (limited to 'appl/cmd/shutdown.b')
-rw-r--r-- | appl/cmd/shutdown.b | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/appl/cmd/shutdown.b b/appl/cmd/shutdown.b deleted file mode 100644 index 8eb7a86c..00000000 --- a/appl/cmd/shutdown.b +++ /dev/null @@ -1,72 +0,0 @@ -implement Shutdown; - -include "sys.m"; -sys: Sys; -FD: import Sys; -stderr: ref FD; - -include "draw.m"; -Context: import Draw; - -sysctl: con "/dev/sysctl"; -reboot: con "reboot"; -halt: con "halt"; - -Shutdown: module -{ - init: fn(ctxt: ref Context, argv: list of string); -}; - -rflag: int; -hflag: int; - -init(nil: ref Context, argv: list of string) -{ - sys = load Sys Sys->PATH; - - stderr = sys->fildes(2); - - argv = tl argv; - if(len argv < 1) - usage(); - - while(argv != nil && len hd argv && (arg := hd argv)[0] == '-' && len arg > 1){ - case arg[1] { - 'r' => - rflag = 1; - 'h' => - hflag = 1; - } - argv = tl argv; - } - - if(rflag == 0 && hflag == 0) - usage(); - - if(rflag == 1 && hflag == 1) - usage(); - - fd := sys->open(sysctl, sys->OWRITE); - if(fd == nil) { - sys->fprint(stderr, "shutdown: %r\n"); - exit; - } - - if(rflag == 1) - if (sys->write(fd, array of byte reboot, len reboot) < 0) { - sys->fprint(stderr, "shutdown: write failed: %r\n"); - exit; - } - - if(hflag == 1) - if (sys->write(fd, array of byte halt, len halt) < 0) { - sys->fprint(stderr, "shutdown: write failed: %r\n"); - exit; - } -} - -usage() -{ - sys->fprint(stderr, "usage: shutdown -r | -h\n"); - exit; -} |