tauri-plugin-shellx-api v2.0.11
Tauri Plugin Shellx
This is a mod of the original official Tauri plugin tauri-plugin-shell.
The purpose is to provide the option to remove restrictions on shell commands (every command has to be pre-defined in capability).
This plugin allows you to execute any shell commands freely without any restrictions.
Docs
JS/TS API Documentation: https://huakunshen.github.io/tauri-plugin-shellx/
Installation
- NPM Package: https://www.npmjs.com/package/tauri-plugin-shellx-api
- Rust Crate: https://crates.io/crates/tauri-plugin-shellx
npm install tauri-plugin-shellx-api
cargo add tauri-plugin-shellx
Usage
Install rust crate from https://crates.io/crates/tauri-plugin-shellx
Init plugin like this. The init()
function takes a single unlocked
argument.
let unlocked = true;
tauri::Builder::default()
.plugin(tauri_plugin_shellx::init(unlocked))
...
- If set to true, capability and permission settings are ignored.
- If set to false, it will work like the original
tauri-plugin-shell
.
Example
An example app can be found at ./examples/tauri-app.
This example app is a simplified terminal emulator.
API
All API functions can be found in the API documentation.
Execute
const cmd = Command.create('echo', ['echo', 'Hello, World!'])
const out = await cmd.execute()
const stdout = out.stdout
// stdout === 'Hello, World!'
Spawn
Spawn a process for long-running tasks, and get stdout/stderr stream for real-time output.
const cmd = Command.create('ffmpeg', [
'-i',
'/Users/xxx/input.mp4',
'/Users/xxx/output.mp4'
])
cmd.on('close', (data) => {
console.log(
`command finished with code ${data.code} and signal ${data.signal}`
)
})
cmd.on('error', (error) => console.error(`command error: "${error}"`))
cmd.stdout.on('data', (line) => console.log(`command stdout: "${line}"`))
cmd.stderr.on('data', (line) => console.log(`command stderr: "${line}"`))
const child = await cmd.spawn()
console.log('pid:', child.pid)
await child.kill()
Extra APIs
Except for the original APIs, this plugin also provides some additional APIs:
Scripts Wrapper
These functions are simply wrappers for the
execute
function, which can be used to execute scripts.
You can also construct your own script runner wrapper
const powershellCmd = Command.create('powershell', ['-Command', script])
const bashCmd = Command.create('bash', ['-c', script])
makeBashScript
makePowershellScript
makeAppleScript
makePythonScript
makeZshScript
makeNodeScript
executeBashScript
executePowershellScript
executeAppleScript
executePythonScript
executeZshScript
executeNodeScript
Other Utilities
likelyOnWindows
hasCommand
fixPathEnv
- If the command you run cannot be found in the PATH environment variable, you can use this function to fix it.
8 months ago
10 months ago
9 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago