A modular shell automation framework that organizes loose shell scripts into user-friendly commands with option parsing and documentation.
Rerun is a shell automation framework that helps organize loose shell scripts into modular, user-friendly commands with built-in option parsing and documentation. It solves the problem of scattered, hard-to-maintain shell scripts by providing a structured approach to creating reusable automation modules that can be easily shared and executed.
System administrators, DevOps engineers, and developers who work extensively with shell scripts and need to organize, share, and maintain automation workflows across teams.
Developers choose Rerun because it provides a lightweight yet powerful framework for structuring shell scripts without heavy dependencies, offering built-in features like option parsing, documentation generation, and packaging that would otherwise require significant custom implementation.
Core rerun. See also http://github.com/rerun-modules
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Transforms loose shell scripts into structured modules with metadata, making automation workflows easier to manage and share, as shown in the module layout with commands, options, and tests.
Automatically handles command-line arguments with support for required/optional options and default values, reducing boilerplate code—evident from metadata files defining options like 'host' with ARGUMENTS and REQUIRED fields.
Supports creating self-extracting archives and system packages (RPM/Debian) via stubbs:archive, facilitating easy sharing across teams as single executables.
Includes stubbs module for generating option parsing code, documentation, and unit tests, speeding up module creation with commands like add-command and add-module.
Provides rerun_log function with configurable levels, formats, and outputs (console, file, syslog), ensuring consistent logging across commands, as detailed in the API section.
Confined to Bash/shell scripting, making it less suitable for automation tasks that require libraries or features from other programming languages, limiting its versatility in polyglot environments.
Requires adherence to a specific module layout (e.g., commands/, metadata/, options/), which can be cumbersome to set up and maintain compared to more flexible scripting approaches.
Heavily reliant on Unix-like environments and Bash, with no native Windows support, potentially problematic for teams operating in mixed or non-Unix systems.
Key documentation is split between the README and an external wiki, which might lead to outdated or hard-to-find information, as noted in the 'See Also' section pointing to the project wiki.