epew (ExternalProgramExecutionWrapper) is a tool to wrap program-calls with some useful functions like getting stdout, stderr, exitcode and the ability to set a timeout.
epew (ExternalProgramExecutionWrapper) is a tool to wrap program-calls with some useful functions.
Important: epew is not ready for usage yet.
epew is a commandline-tool. There is no gui. The main-advantage of epew is to be used when
- it is difficult to pass special characters (backslashs, quotes, etc.) from commandline to another program (use epew with the
- it is difficult to get stdout, stderr or the exitcode of the program (use epew with the
- you want to have a simple timeout when running a program (use epew with the
- you want to print the output to the console but also log the output into a file when running a program. Both (console and logfile) can of course have timestamps and a distinction between stderr and stdout.
- epew is available for Linux and Windows.
- epew resolves environment-variables (e. g. you can set
gitas program instead of
C:\Program Files\Git\cmd\git.exe(which would also be possible)).
Installation via pip (Linux and Windows)
pip install epew
Download sourcecode using git (Linux and Windows)
git clone https://github.com/anionDev/externalProgramExecutionWrapper cd externalProgramExecutionWrapper dotnet build ExternalProgramExecutionWrapper.sln
Installation via winget (Windows, planned)
Coming as soon as possible. winget is new for all of us, that's why epew is not instant available via winget.
>epew -p, --Program Required. Program which should be executed -a, --Argument Argument for the program which should be executed -b, --ArgumentIsBase64Encoded (Default: false) Specifiy whether Argument is base64-encoded -w, --Workingdirectory Workingdirectory for the program which should be executed -v, --Verbosity (Default: Normal) Verbosity of ExternalProgramExecutionWrapper -i, --PrintErrorsAsInformation (Default: false) Treat errors as information -h, --AddLogOverhead (Default: false) Add log overhead -l, --LogFile Logfile for ExternalProgramExecutionWrapper -o, --StdOutFile File for the stdout of the executed program -e, --StdErrFile File for the stderr of the executed program -x, --ExitCodeFile File for the exitcode of the executed program -d, --TimeoutInMilliseconds (Default: 2147483647) Maximal duration of the execution process before it will by aborted by ExternalProgramExecutionWrapper -t, --Title Title for the execution-process -n, --NotSynchronous (Default: false) Run the program asynchronously --help Display this help screen. --version Display version information.
2147393801: If no program was executed 2147393802: If a fatal error occurred 2147393803: If the executed program was aborted due to the given timeout 2147393881: If executed on MacOS (applies only to the pip-package) 2147393882: If executed on an unknown OS (applies only to the pip-package) 2147393883: If an (unexpected) exception occurred (applies only to the pip-package)
If the executed program terminated then its exitcode will be set as exitcode of epew.
Installing epew via pip does really install epew. It does not install another implementation of epew with same behavior. The pip-package of epew takes the binary-files of epew (which are written in C# and compiled for the runtimes
linux-x64), wraps them to a bundle and simple calls the correct one dependent on your OS.
The officially released
epew.dll-file is always signed with the key with the short-id
79cae7246084aa22. Do not trust any
epew.dll-file which are not signed with this key.
epew.dll will be signed with this key. All other files contained in a binary-release of epew are not signed by this key.
You can verify the key using sn with
sn -T epew.dll.
epew is licensed under the terms of MIT. The concrete license-text can be found here.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.