masoneer 1.0.0
masoneer: ^1.0.0 copied to clipboard
A TUI for managing and generating Mason bricks from multiple GitHub repositories.
Masoneer #
A terminal user interface (TUI) for managing and generating Mason bricks from multiple GitHub repositories.
Masoneer simplifies the process of scaffolding code by providing an interactive menu to browse and apply Mason templates directly from your configured GitHub repositories—without manually running Mason CLI commands.
Features #
- Multiple Repository Support — Configure multiple GitHub repositories containing Mason bricks
- Interactive TUI — Browse and select bricks through a searchable menu
- Private Repository Support — Use GitHub tokens for private repositories
- Cross-Platform — Works on macOS and Linux
- Zero Configuration Start — Ships with a working example repository out of the box
Prerequisites #
- Mason CLI must be installed and available in your PATH
- Dart SDK ^3.9.0 (only if installing from source)
# Install Mason CLI
dart pub global activate mason_cli
Installation #
From pub.flutter-io.cn (Recommended) #
dart pub global activate masoneer
Make sure you have the Dart SDK's global bin directory in your PATH:
# Add to ~/.zshrc or ~/.bashrc
export PATH="$PATH:$HOME/.pub-cache/bin"
From Source #
# Clone the repository
git clone https://github.com/Zerkley/masoneer.git
cd masoneer
# Install dependencies
dart pub get
# Option 1: Run directly with Dart
dart run
# Option 2: Compile to native executable
dart compile exe bin/masoneer.dart -o masoneer
# Move to PATH for global access
sudo mv masoneer /usr/local/bin/
# Or for user-only installation:
mkdir -p ~/.local/bin && mv masoneer ~/.local/bin/
Configuration #
Masoneer uses a TOML configuration file located at:
- macOS/Linux:
~/.config/masoneer/config.toml - Windows:
%APPDATA%\masoneer\config.toml
A default configuration is created automatically on first run.
Configuration Format #
[github]
repos = [
{ name = "My Templates", github_url = "https://github.com/username/my-bricks" },
{ name = "Work Templates", github_url = "https://github.com/company/bricks", auth_token = "ghp_xxxxxxxxxxxx" },
]
Configuration Fields #
| Field | Required | Description |
|---|---|---|
name |
Yes | Display name shown in the TUI menu |
github_url |
Yes | GitHub repository URL containing Mason bricks |
auth_token |
No | GitHub personal access token (required for private repos) |
Repository Structure #
Your GitHub repository should contain a mason.yaml file at the root with your bricks defined:
bricks:
my_brick:
path: bricks/my_brick
another_brick:
path: bricks/another_brick
Usage #
Simply run masoneer from the directory where you want to generate the brick:
cd ~/projects/my-app
masoneer
Then navigate through the menus:
- Select Mason from the main menu
- Choose a repository from your configured list
- Select a brick to generate
- Follow any Mason prompts for brick variables
The generated files will be placed in your current working directory.
License #
MIT License — see LICENSE for details.
Made with Dart and commander_ui