Process run helpers for Linux/Win/Mac.
Currently using Process.run
does not stream output which is not convenient for lengthy
operation. It requires using Process.start
in a more complex way.
run
and runCmd
add verbose helper for that. Also dart binaries (pub, dart2js...) and any
script can be called consistently on Mac/Windows/Linux
ProcessCmd
allow creating command object that can be run and modified.
Like unix which
, it searches for installed executables
import 'package:process_run/which.dart';
Find flutter
and firebase
executables:
var flutterExectutable = whichSync('flutter');
var firebaseExectutable = whichSync('firebase');
Allows to run script from Mac/Windows/Linux in a portable way. Empty lines are added for lisibility
import 'package:process_run/shell.dart';
Run a simple script:
var shell = Shell();
await shell.run('''
# Display some text
echo Hello
# Display dart version
dart --version
# Display pub version
pub --version
''');
More information on shell here
Binary utility that allow changing from the command line the environment (var, path, alias) used in Shell.
More information on shell bin here
If you want to run executable in a MacOS flutter context, you need to disable sandbox mode. See Removing sandboxing and ProcessException: Operation not permitted on macOS
In macos/Runner/DebugProfile.entitlements
and macos/Runner/Release.entitlements
, change:
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
</dict>
to
<dict>
<key>com.apple.security.app-sandbox</key>
<false/>
</dict>
Addtional features and information are available here