npm package: @omy.dev/omy-build-tool
Description: universal dev workspace and build management tool
Author: OMy Dev
Latest version: 0.0.3

# OMY BUILD TOOL
>**`WARNING:`** This package is under development and not recommended for general use as breaking changes will be introduced.

**Universal dev workspace and build management tool**

*This is a cli tool to manage a workspace consisting of heterogenous git repos*

---


## Usage Guide

```bash
─────────────────────────────────────────────────────────────────
omy --help
─────────────────────────────────────────────────────────────────
omy <cmd> [args]

Commands:
  omy ws   Workspace management subcommand
  omy run  Run a target defined in workspace.json

Options:
  --version  Show version number                    [boolean]
  --help     Show help                              [boolean]
─────────────────────────────────────────────────────────────────
```

---

### Workspace Management


```bash
─────────────────────────────────────────────────────────────────
omy ws --help
─────────────────────────────────────────────────────────────────
omy ws

Workspace management subcommand

Commands:
  omy ws init            Initialize workspace in current empty directory
  omy ws add package     Add package to workspace
  omy ws remove package  Remove package from workspace

Options:
  --version  Show version number                       [boolean]
  --help     Show help                                 [boolean]
─────────────────────────────────────────────────────────────────
```


####  Initialize workspace in an empty directory

```bash
─────────────────────────────────────────────────────────────────
omy ws init
─────────────────────────────────────────────────────────────────

✔ Created workspace.json file at /path/to/my-worspace
✔ Initialized workspace at /path/to/my-worspace
─────────────────────────────────────────────────────────────────

─────────────────────────────────────────────────────────────────
cat workspace.json 
───────┬─────────────────────────────────────────────────────────
       │ File: workspace.json
───────┼─────────────────────────────────────────────────────────
   1   │ {
   2   │     "name": "my-worspace",
   3   │     "packages": {}
   4   │ }
───────┴─────────────────────────────────────────────────────────
```



#### Add a package to workspace

```bash
─────────────────────────────────────────────────────────────────
omy ws add package --name my-service \
    --url git@github.com/user/my-service.git
─────────────────────────────────────────────────────────────────

...
─────────────────────────────────────────────────────────────────

─────────────────────────────────────────────────────────────────
cat workspace.json
───────┬─────────────────────────────────────────────────────────
       │ File: workspace.json
───────┼─────────────────────────────────────────────────────────
   1   │ {
   2   │     "name": "my-workspace",
   3   │     "packages": {
   4   │         "my-service": {
   5   │             "url": "git@github.com/user/my-service.git"
   6   │         }
   7   │     },
   8   │ }
───────┴─────────────────────────────────────────────────────────
```


#### Remove a package to workspace

```bash
─────────────────────────────────────────────────────────────
omy ws remove package --name my-service
─────────────────────────────────────────────────────────────

...
─────────────────────────────────────────────────────────────
```


### Run workspace defined targets

```bash
─────────────────────────────────────────────────────────────────
omy run --help
─────────────────────────────────────────────────────────────────
omy run

Run a target defined in workspace.json

Positionals:
  package, p  run task within that package [string] [default: "$WORKSPACE_ROOT"]

Options:
  --version  Show version number                      [boolean]
  --help     Show help                                [boolean]
─────────────────────────────────────────────────────────────────
```

#### Run a target in current workspace

```bash
─────────────────────────────────────────────────────────────
omy run release
─────────────────────────────────────────────────────────────

RELEASE @ my-service
─────────────────────────────────────────────────────────────
```

```bash
─────────────────────────────────────────────────────────────────
cat workspace.json
───────┬─────────────────────────────────────────────────────────
       │ File: workspace.json
───────┼─────────────────────────────────────────────────────────
   1   │ {
   2   │     "name": "my-workspace",
   3   │     "packages": {
   4   │         "my-service": {
   5   │             "url": "git@github.com/user/my-service.git"
   6   │         }
   7   │     },
   8   │     "run": {
   9   │         "release": "omy run echo:release -p my-service",
  10   │         "echo:release": "echo RELEASE @ `pwd`"
  11   │     }
  12   │ }
───────┴─────────────────────────────────────────────────────────
```

---