aru

command module
v0.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 2, 2026 License: MIT Imports: 21 Imported by: 0

README

aru

The Arandu CLI. Same relationship as Laravel and artisan: the brand is Arandu, the command is aru — the arandu binary is already taken by another tool.

Its own module, with no dependencies. It is separate from arandu-io/framework so that a project importing the framework does not drag the CLI's dependencies along; see 05-repositorios.md and adr/0005.

Two kinds of command

Kind Commands Why
Runs here key:generate, new, make:*, doctor touches files only
Delegated to the project serve, migrate, routes needs the registered modules, and only the project binary knows them

Delegation runs go run ./cmd/app <command> from the project root. That is a consequence of explicit wiring: there is no container and no plugin loading, so a separately compiled CLI cannot know which modules an application registered.

Status

Phase 1 implements key:generate, serve, migrate and routes. new, make:module, make:policy and doctor state the phase they arrive in.

Build

go build -ldflags "-X main.version=$(git describe --tags --always)" -o bin/aru .

License

MIT, the same license Laravel uses. See LICENSE.md.

Documentation

Overview

Command aru is the Arandu CLI.

It does two kinds of work, and the split matters. Commands that only touch files -- key:generate, new, make:*, doctor -- run here. Commands that need the registered modules -- serve, migrate, routes -- are delegated to the project's own binary, because only that binary knows which modules exist. Nothing is resolved by reflection, and everything the CLI generates is readable, committable Go.

The binary is called aru rather than arandu: the arandu name is already taken by another tool. Same split as Laravel and artisan.

Directories

Path Synopsis
internal
doctor
Package doctor turns the architecture rules into static analysis.
Package doctor turns the architecture rules into static analysis.
gen
Package gen turns a module specification into Go source.
Package gen turns a module specification into Go source.
manifest
Package manifest reads arandu.mod.toml, the metadata every module declares.
Package manifest reads arandu.mod.toml, the metadata every module declares.
toolchain
Package toolchain downloads and caches the two binaries the view layer needs.
Package toolchain downloads and caches the two binaries the view layer needs.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL