mpgr is a lightweight Bash wrapper that manages project tasks using mise. It provides a unified task interface across multiple projects while keeping them organized separately. By leveraging mise’s unique features, mpgr simplifies workflow management and promotes better productivity for complex project setups.
mpgr is a lightweight Bash wrapper designed to enhance project management by leveraging mise-en-place. This tool facilitates a central task overlay for multiple projects, ensuring that tasks remain organized and easily accessible, while projects are neatly separated. By utilizing mise's monorepo mode, mpgr enables users to map shared tasks to various project directories seamlessly.
Key Features
- Single Task Management: All tasks are consolidated in one location, simplifying the management process.
- Seamless Project Integration: Each project directory is equipped with minimal configuration, allowing for quick setup and easy navigation.
- Flexible Project Structure: Projects can be nested without limitations, as
mpgridentifies all leaf directories with amise.tomlas projects.
Project Structure
Within the mpgr workspace, each project directory contains:
- A concise
mise.tomlfile, typically with only two lines of configuration. - A
mise-tasks/directory which holds symlinks to shared tasks. - A unique identifier path for the project (e.g.,
dotfiles/hyprorcustomer-a/ca-project-1).
Example Usage
Display Information
Generate information about the workspace and tasks:
mpgr run all info
Run an Editor Task
To start the editor for a specific project:
mpgr run "dotfiles/hypr" editor
Run the editor in a separate terminal:
mpgr run "dotfiles/hypr" editor -t
To execute the editor for all projects:
mpgr run all editor -t
Debugging Outputs
For troubleshooting, enable verbose logging:
MPGR_VERBOSE=true mpgr run all info
MPGR_TRACE=true mpgr run all info
Future Enhancements
mpgr has the potential for further development, including:
- A portable rewrite in Go or Rust.
- Auto-completion features.
- Development of CRUD operations for projects and tasks.
- A built-in self-update functionality.
Contributions are welcome, encouraging a community-driven development process.
No comments yet.
Sign in to be the first to comment.