gon make:module
Scaffold a new module under src/{Name}/ from the built-in templates. Ships with Provider, routes, migrations skeleton, lang files, .github/workflows/validate.yml, and by default a full CRUD (Model + Repository + Pages + register*() methods).
Usage
gon make:module Admissions # Default: --with-crud=Admission (singular of module name)gon make:module Admissions --with-crud=Entry # Custom model namegon make:module Hooks --no-crud # Minimal module, no Model/Repo/Pagesgon make:module Admissions --plural=Entries # Override naive pluralizergon make:module Admissions --crud-slug=admissions/entries # Override default {module}/{models}gon make:module Admissions --table=admissions_entries # Override default table namegon make:module Admissions --menu-group=Obchod # Admin menu group (default: Obchod)gon make:module Admissions --disabled # Do not enable in modules-enabled
GitHub repo flags
gon make:module Foo # Creates rozklad/gon-foo automatically (private)gon make:module Foo --no-repo # Skip git init + GitHub repo creationgon make:module Foo --public # Public repo instead of privategon make:module Foo --org=rozklad # Under an org (default: authenticated user)gon make:module Foo --skip-push # Init locally but don't push
What happens
- Copies templates to
src/{Name}/with placeholder substitution ({{NAME}}, {{KEBAB}}, {{MODEL}}, …). - Copies
.github/workflows/validate.ymlfrom gon-cli shared source. - Enables the module in
storage/config/modules-enabled.php. - Unless
--no-repo:git init -b main, initial commit, createsrozklad/gon-{kebab}, pushes.
CRUD slug defaults to {module-kebab}/{models-kebab} — sub-resource convention (matches users/tokens, bank/accounts). Pages are placed under Pages/{Models}/ so the AdminController resolves Inertia views correctly.
See gon publish to publish an existing local module later.