I just saw [this announcement][ann] of [duct], which seems to handle a bunch of weird edge cases in relation to `std::process::Command`. [duct]: https://docs.rs/duct [ann]: https://www.reddit.com/r/rust/comments/618jvw/announcing_duct_a_child_process_library_thats/ It looks like we can use it to: - Define commands as strings using its `sh` fn. Internally it actually calls `/bin/sh`/`cmd.exe`, so it doesn't have to do crazy string splitting (it also has a macro). #25 - Set working dir #28 - Set env vars #27 - pipe stuff into other commands 😮 - Pipe stuff (bytes) into the program #26 I really like our fluent API, and would suggest adding methods that internally handle `duct::Expression`. cc @nathanross @colin-kiegel @epage who are the authors of the linked issues cc @oconnor663 who is the author of duct
I just saw this announcement of duct, which seems to handle a bunch of weird edge cases in relation to
std::process::Command.It looks like we can use it to:
shfn. Internally it actually calls/bin/sh/cmd.exe, so it doesn't have to do crazy string splitting (it also has a macro). Deprecate macro in favor of cleverAssert::command(&str)? #25I really like our fluent API, and would suggest adding methods that internally handle
duct::Expression.cc @nathanross @colin-kiegel @epage who are the authors of the linked issues
cc @oconnor663 who is the author of duct