An open API service indexing awesome lists of open source software.

https://github.com/hugojosefson/deno-sudo

Easy-to-use sudo for deno cli apps.
https://github.com/hugojosefson/deno-sudo

cli deno sudo

Last synced: 6 months ago
JSON representation

Easy-to-use sudo for deno cli apps.

Awesome Lists containing this project

README

          

# deno-sudo

`🦕 #`

Spawns a new `deno` process, using the system's `sudo` command to have that
spawned process gain privileged permissions.

The `sudo` executable will be connected to the console, so it can ask the user
for their password.

When the `sudo` process has achieved elevated privileges, the main original
`deno` process uses the `sudo deno` process to run any commands requiring `root`
privileges. It does this by communicating with that process, asking it to run
system commands on its behalf.

The benefit of keeping the privileged process around, and sending it commands to
run as `root`, is that it needs to ask the user only once for their password.
Even if long time passes between commands, which would otherwise time out the
`sudo` elevation and prompt the user to re-enter their password. This is useful
for e.g. scripting installation of operating systems and their components.

After initial instantiation, the API supplied is a single `import()` function,
which behaves much like the built-in dynamic `import()` statement. However,
instead of actually importing the module, it is imported in a separate
privileged `deno` process. The object returned to the caller is a `Proxy` which
delegates everything to the imported module in the privileged process.