1 USING: accessors arrays elevate elevate.private elevate.unix
2 elevate.unix.private environment io.launcher kernel locals
7 M:: linux elevated ( command replace? win-console? posix-graphical? -- process )
9 <process> command >>command 1array ! we are already root: just give a process
11 posix-graphical? ui-running? or "DISPLAY" os-env and [
12 command { "gksudo" "kdesudo" "pkexec" "sudo" } [
14 ] with map :> command-list
17 replace? [ posix-replace-process ] [
18 ! need to fix race condition
19 <process> swap >>command t >>detached run-process
22 [ failed-process? ] all? [
23 command command-list elevated-failed
27 command replace? posix-elevated ! sudo only