| Crates.io | hawk-cli |
| lib.rs | hawk-cli |
| version | 0.1.4 |
| created_at | 2023-03-12 01:02:36.907788+00 |
| updated_at | 2023-03-12 01:02:36.907788+00 |
| description | Dead simple cli to ease github workflows management in monorepos |
| homepage | |
| repository | https://github.com/rawnly/hawk |
| max_upload_size | |
| id | 807654 |
| size | 260,384 |
Dead simple rust CLI to ease workflows management inside monorepos.

Run hawk init to initialize an empty config file. With the --read-from-env flag hawk will try to
retrive your workspaces from pnpm-workspace.yaml or pacakge.json workspaces key.
You can also pass --json if you want to save the config file as json.
hawk 0.1.4
USAGE:
hawk [OPTIONS] [SUBCOMMAND]
OPTIONS:
-c, --config <CONFIG> Specify the config file path
-h, --help Print help information
--scope <SCOPE> Specify which workspaces files copy / watch Usage: --scope
<workspace-name>
-V, --version Print version information
SUBCOMMANDS:
clean Delete generated files
copy Copy files to the `target` directory
help Print this message or the help of the given subcommand(s)
init Initialize a repository
list List workflows in the `target` directory
Check out the example folder.
Below an example monorepo situation:
example
├── hawk-config.yaml
├── .github
│ └── workflows
│ ├── my-second-app--deploy.yml # name generated by folder
│ └── the-app--deploy.yml # name is read from package.json
└── packages
├── my-app
│ ├── .DS_Store
│ ├── package.json // reads workspace name from package.json (the-app)
│ └── .github/workflows
│ └── deploy.yml
└── my-second-app
└── .github/workflows
└── deploy.yml
$ cd example
$ hawk --watch
... let the magic happen
Github actions don't yet support workflows inside subfolders, neither in your .github/workflows/ folder or project custom folders.
So I made hawk to solve this problem without using custom commands. It lets you copy workflows from custom paths and paste them with a prefix, handling most of the pain.
With 10 lines config you have a working monorepo setup.
Download the latest release and move in your $PATH
make sure to have your rust environment ready, then:
cargo build -r or make buildtarget/release/hawk to your path or use sudo make install (it will copy the bin into /usr/local/bin)To setup a new project just run hawk init. If you're in a node environment you can pass the --read-from-env flag to generate config based on the monorepo configuration.
workflows folder from generated files.pnpm-workspace.yaml and yarns package.json:workspaces