Metadata-Version: 2.4
Name: content-hub
Version: 0.2.0
Summary: A CLI for managing the lifecycle of directory content across multiple locations.
Author: iplaylf2
License-Expression: BSD-3-Clause
Project-URL: Homepage, https://github.com/iplaylf2/content-hub
Project-URL: Issues, https://github.com/iplaylf2/content-hub/issues
Project-URL: Source, https://github.com/iplaylf2/content-hub
Keywords: cli,directory,workspace,lifecycle,sync,contentctl
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Utilities
Classifier: Topic :: System :: Filesystems
Classifier: Operating System :: OS Independent
Requires-Python: >=3.14
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: jsonschema>=4.26.0
Requires-Dist: pyyaml>=6.0.3
Dynamic: license-file

# content-hub

content-hub is a CLI tool that syncs directory content between one origin and one or more workspaces, driven by a config file.

## Quick Start

Requires Python 3.14+.

```bash
pip install content-hub
```

Initialize a config:

```bash
contentctl init
```

This creates `content-hub.yaml`:

```yaml
origin: origin
workspaces:
  docs: ./docs
```

Run sync flows:

```bash
contentctl deploy docs              # deploy origin → workspace
contentctl deploy docs --delete     # deploy + remove workspace files missing in origin
contentctl adopt docs               # adopt workspace → origin
contentctl deploy docs --dry-run    # show planned operations without changes
```

Behavior:

- `--path` is relative to the origin/workspace roots (default `.`).
- `--delete` removes workspace files missing in origin, filtered by `include`/`exclude` globs.

## Config Notes

- `origin` sets the primary content directory.
- `workspaces` maps aliases to workspace paths.
- `${VAR}` environment variable expansion is supported in config values.
