PitchHut logo
mpgr
Streamline project management with a centralized task overlay.
Pitch

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.

Description

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 mpgr identifies all leaf directories with a mise.toml as projects.

Project Structure

Within the mpgr workspace, each project directory contains:

  • A concise mise.toml file, 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/hypr or customer-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.

0 comments

No comments yet.

Sign in to be the first to comment.