Struct tauri::api::process::Command

source ·
pub struct Command { /* private fields */ }
Available on crate feature process-command-api only.
Expand description

The type to spawn commands.

Implementations§

source§

impl Command

source

pub fn new<S: Into<String>>(program: S) -> Self

Creates a new Command for launching the given program.

source

pub fn new_sidecar<S: Into<String>>(program: S) -> Result<Self>

Creates a new Command for launching the given sidecar program.

A sidecar program is a embedded external binary in order to make your application work or to prevent users having to install additional dependencies (e.g. Node.js, Python, etc).

source

pub fn args<I, S>(self, args: I) -> Selfwhere I: IntoIterator<Item = S>, S: AsRef<str>,

Appends arguments to the command.

source

pub fn env_clear(self) -> Self

Clears the entire environment map for the child process.

source

pub fn envs(self, env: HashMap<String, String>) -> Self

Adds or updates multiple environment variable mappings.

source

pub fn current_dir(self, current_dir: PathBuf) -> Self

Sets the working directory for the child process.

source

pub fn encoding(self, encoding: &'static Encoding) -> Self

Sets the character encoding for stdout/stderr.

source

pub fn spawn(self) -> Result<(Receiver<CommandEvent>, CommandChild)>

Spawns the command.

Examples
use tauri::api::process::{Command, CommandEvent};
tauri::async_runtime::spawn(async move {
  let (mut rx, mut child) = Command::new("cargo")
    .args(["tauri", "dev"])
    .spawn()
    .expect("Failed to spawn cargo");

  let mut i = 0;
  while let Some(event) = rx.recv().await {
    if let CommandEvent::Stdout(line) = event {
      println!("got: {}", line);
      i += 1;
      if i == 4 {
        child.write("message from Rust\n".as_bytes()).unwrap();
        i = 0;
      }
    }
  }
});
source

pub fn status(self) -> Result<ExitStatus>

Executes a command as a child process, waiting for it to finish and collecting its exit status. Stdin, stdout and stderr are ignored.

Examples
use tauri::api::process::Command;
let status = Command::new("which").args(["ls"]).status().unwrap();
println!("`which` finished with status: {:?}", status.code());
source

pub fn output(self) -> Result<Output>

Executes the command as a child process, waiting for it to finish and collecting all of its output. Stdin is ignored.

Examples
use tauri::api::process::Command;
let output = Command::new("echo").args(["TAURI"]).output().unwrap();
assert!(output.status.success());
assert_eq!(output.stdout, "TAURI");

Trait Implementations§

source§

impl Debug for Command

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Command> for StdCommand

source§

fn from(cmd: Command) -> StdCommand

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more