Metadata-Version: 2.4
Name: bake
Version: 0.6.0
Summary: Bake orchestrates internal CLI tools, setup scripts, and repeatable automation workflows.
Keywords: automation,cli,developer-tools,scripts,workflow
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Requires-Dist: python-dotenv>=1.1.1
Requires-Dist: rich>=14.1.0
Requires-Dist: textual>=3.1.0
Description-Content-Type: text/markdown

# Bake

Bake is a CLI automation orchestrator for managing internal tool repositories,
setup scripts, and reusable command workflows.

## Why Bake

- Organize automation in one place instead of scattered shell scripts.
- Bootstrap and install tool repositories from JSON definitions.
- Expose runnable binaries in a shared `bin` directory.
- Keep local setup repeatable across developers.

## Install

Install Bake as a global CLI tool with [uv](https://docs.astral.sh/uv/):

```bash
uv tool install bake
```

Or install from a local checkout for development:

```bash
uv venv
source .venv/bin/activate
uv pip install -e .
```

After installation, the `bake` command is available globally:

```bash
bake
```

## Commands

### `bake install`

Interactive initialization flow that:

- Configures `BAKE_PATH` in `.env`.
- Creates `config`, `repositories`, and `bin` folders.
- Copies default configuration templates from `tools/config`.
- Optionally downloads and installs configured repositories.

### `bake tray`

Opens an interactive terminal UI to browse and run installed commands from
`$BAKE_PATH/bin`. Navigate with arrow keys and press Enter to execute.

The UI theme can be configured via the `BAKE_THEME` environment variable in
`.env` (defaults to `nord`). Available themes: `gruvbox`, `tokyo-night`,
`textual-dark`, `solarized-light`, `atom-one-dark`, `atom-one-light`.

### `bake dpkg sync-config`

Synchronizes default configuration definitions from `tools/config` into
`$BAKE_PATH/config`.

## Configuration Model

Bake uses JSON files in `tools/config`, for example:

```json
{
  "name": "aws-cli-toolkit",
  "repo_url": "https://github.com/darioriverat/aws-cli-toolkit",
  "description": "A comprehensive command-line toolkit for managing AWS services",
  "scripts": {
    "install": [
      "uv venv",
      "source .venv/bin/activate",
      "uv pip install -e ."
    ]
  }
}
```

Optional `binaries` entries can create symlinks/wrappers in `$BAKE_PATH/bin`.

## Notes

- `BAKE_PATH` is the environment variable used by Bake.
- `bake` is the canonical command.
