USING: accessors arrays assocs combinators command-line environment formatting fry io.launcher kernel locals math namespaces sequences splitting strings system ui vocabs ; IN: elevate > zero? not ; PRIVATE> HOOK: already-root? os ( -- ? ) HOOK: elevated os ( command replace? win-console? posix-graphical? -- process ) HOOK: lowered os ( -- ) : elevate ( win-console? posix-graphical? -- ) [ (command-line) t ] 2dip elevated drop ; os unix? [ "elevate.unix" require ] when { { [ os windows? ] [ "elevate.windows" require ] } { [ os linux? ] [ "elevate.linux" require ] } { [ os macosx? ] [ "elevate.macosx" require ] } } cond