The repo Commands

Everything that is not an action lives behind one reserved word: curo repo. These are repo-structure queries and manifest management. The first bare token after curo is therefore always an action, or repo.

The repo commands honor --porcelain for JSON output.

curo repo info

Displays the project layout: the component tree. -v adds profiles and defined actions, -vv adds versions and descriptions.

curo repo info

public
├── shdx
│   ├── lib
│   └── installer
├── shaddo
│   ├── cli
│   └── installer
└── curo
    ├── cli
    ├── installer
    └── docs

Add -v or more vs for profiles, actions, versions and descriptions:

curo repo info -vv

public [A collection of open source tools and libraries.]
├── dev
│   ├── install
│   ├── format
│   └── lint
├── ci
│   └── install
└── curo [2.1.0 - A command line tool for building projects.]
    └── cli [2.1.0 - The curo command line tool.]
        ├── dev
        │   ├── build
        │   ├── format
        │   ├── test
        │   │   ├── unit
        │   │   ├── integration
        │   │   └── functional
        │   └── deploy
        └── rel
            ├── build
            └── publish

curo repo find

Prints the full path of a component. Use / or no argument for the root. Handy for navigation:

cd $(curo repo find frontend/lib)
cd $(curo repo find /)

curo repo version

Prints the version of a component, with {{ inherit }} resolved. Use / or no argument for the root:

curo repo version curo/cli

(The version of curo itself is curo --version.)

curo repo init

Prints a commented curo.toml template to stdout:

curo repo init > curo.toml

curo repo migrate

Converts 1.x manifests to lean 2.0 manifests, in place. See Migrating from 1.x.

curo repo migrate --dry-run
curo repo migrate

curo repo completion

Prints the shell completion script for fish, bash or zsh. See Installation for setup. Completions cover actions, sublevels, component paths, profiles and runtime names.