Skip to main content

Small Python script that executes given commands and defers errors.

Project description

status release downloads ci release

Exec-cmds-defer-errors

Small Python script that executes given commands and defers errors.

The standalone script is called exec_cmds_defer_errors.py and can be found here. The license is included in the file.

Here it is used to run three commands:

uv run --script exec_cmds_defer_errors.py \
  'whoami | grep goatse' \
  'echo "hello world"' \
  'make love' \
  'sleep 1.5'

Note that in the example the script is executed with uv run, a subcommand of uv, which is a package manager for Python. This is because the script contains inline script metadata specifying required dependencies. The script also contains a shebang, so it can be executed directly.

The output will look like this (but colored):

Executing command 1...
whoami | grep goatse
Executed command 1 failed with exit code 1. Took 0.00 seconds.
Executing command 2...
echo "hello world"
hello world
Executed command 2 successfully. Took 0.00 seconds.
Executing command 3...
make love
make: *** No rule to make target 'love'.  Stop.
Executed command 3 failed with exit code 2. Took 0.00 seconds.
Executing command 4...
sleep 1.5
Executed command 4 successfully. Took 1.50 seconds.
2 out of 4 command(s) failed.
Command 1 failed with exit code 1: whoami | grep goatse
Command 3 failed with exit code 2: make love

Shell completion

This program uses Click for the CLI. Click provides automatically generated shell completion for Bash, Fish, and Zsh. Check out the official documentation here.

Project status

The project is maintained by me, Tim, and I am interested in keeping it alive as I am actively using it.

Versioning

The project follows Semantic Versioning.

Contributing

Contributions are welcome. Please refer to CONTRIBUTE.md.

Licensing

This work is licensed under the ISC license. See LICENSE for the license text.

The license is also included in the script exec_cmds_defer_errors.py itself.

Template

This project is based on the following Copier template: https://github.com/trallnag/copier-template-python-script.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

exec_cmds_defer_errors-3.0.0.tar.gz (35.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

exec_cmds_defer_errors-3.0.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file exec_cmds_defer_errors-3.0.0.tar.gz.

File metadata

  • Download URL: exec_cmds_defer_errors-3.0.0.tar.gz
  • Upload date:
  • Size: 35.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for exec_cmds_defer_errors-3.0.0.tar.gz
Algorithm Hash digest
SHA256 562d541deafae5f79e88383c54d1ad5f3a57f38ff89212a66adba503420b5cb2
MD5 b2f9cbc9cf981331da2ff0fc6588f7a2
BLAKE2b-256 ec1ccece42449270b85af9dca62b5764325c40b507c545f182970f136408a643

See more details on using hashes here.

Provenance

The following attestation bundles were made for exec_cmds_defer_errors-3.0.0.tar.gz:

Publisher: release.yaml on trallnag/exec-cmds-defer-errors

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file exec_cmds_defer_errors-3.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for exec_cmds_defer_errors-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1eb7aeb188ddb47045b408c448928e355453ea28c8305ec205a5da26a2137386
MD5 024c9b29f28343c271fca4208de26020
BLAKE2b-256 ce2a10991bcdbb667b0e24fe882cc8e231f59a929066764aec9bbfed5b0dbe25

See more details on using hashes here.

Provenance

The following attestation bundles were made for exec_cmds_defer_errors-3.0.0-py3-none-any.whl:

Publisher: release.yaml on trallnag/exec-cmds-defer-errors

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page