1 USING: accessors arrays assocs combinators command-line
2 environment formatting fry io.launcher kernel locals math
3 namespaces sequences splitting strings system ui vocabs ;
7 ERROR: elevated-failed command { strategies array } ;
8 ERROR: lowered-failed ;
10 GENERIC#: prepend-command 1 ( command word -- word+command )
11 M: array prepend-command
14 M: string prepend-command
17 GENERIC: failed-process? ( process -- ? )
18 M: f failed-process? not ;
19 M: fixnum failed-process? -1 = ;
20 M: process failed-process? status>> zero? not ;
23 HOOK: already-root? os ( -- ? )
25 HOOK: elevated os ( command replace? win-console? posix-graphical? -- process )
26 HOOK: lowered os ( -- )
28 : elevate ( win-console? posix-graphical? -- ) [ (command-line) t ] 2dip elevated drop ;
30 os unix? [ "elevate.unix" require ] when
33 { [ os windows? ] [ "elevate.windows" require ] }
34 { [ os linux? ] [ "elevate.linux" require ] }
35 { [ os macosx? ] [ "elevate.macosx" require ] }