2.0.11 • Published 8 months ago

tauri-plugin-shellx-api v2.0.11

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

Tauri Plugin Shellx

Deploy Docs

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 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.

npm.io

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.
2.0.11

8 months ago

2.0.9

10 months ago

2.0.10

9 months ago

2.0.8

11 months ago

2.0.7

12 months ago

2.0.6

12 months ago

2.0.5

12 months ago

2.0.4

12 months ago

2.0.3

12 months ago

2.0.2

12 months ago

2.0.1

12 months ago

2.0.0

12 months ago

0.0.5

12 months ago

0.0.4

12 months ago

0.0.3

12 months ago

0.0.2

12 months ago

0.0.1

12 months ago