An open API service indexing awesome lists of open source software.

https://github.com/natanback77/cowl

Cowl é um CLI leve que monitora, recompila e executa automaticamente seu código C a cada alteração.
https://github.com/natanback77/cowl

c javascript nodejs npm-package

Last synced: about 1 year ago
JSON representation

Cowl é um CLI leve que monitora, recompila e executa automaticamente seu código C a cada alteração.

Awesome Lists containing this project

README

          


Logo do Cowl


Bash Badge
JavaScript Badge



NPM version


Backers


Sponsors

Cowl 🦉


CLI para monitorar, compilar e executar código C automaticamente.

Inspirado na coruja vigilante, que observa e age no momento certo.

---

## 📦 Instalação

### Instalação global via npm:

```bash
npm install -g @natabael/cowl
```

Ou, para instalar localmente:

```bash
npm install @natabael/cowl
```

## 🚀 Uso

```bash
# Executa o watcher com padrões:
cowl

# Especifica arquivo-fonte e nome do executável:
cowl --src=hello.c --out=hello_app
```

### Opções

| Flag | Alias | Descrição | Default |
| -------------- | ----- | ----------------------------------------- | ------- |
| `--src ` | `-s` | Arquivo C a ser monitorado | `app.c` |
| `--out ` | `-o` | Nome do executável compilado | `app` |
| `--delay ` | `-d` | Atraso em milissegundos antes de executar | `100` |
| `--help` | | Exibe ajuda e opções disponíveis | |

## ⚙️ Variáveis de Ambiente

Você também pode configurar via env:

```bash
export C_SOURCE_FILE=mycode.c
export C_EXECUTABLE_NAME=mybin
export EXEC_DELAY_MS=200
cowl
```

## 📄 Configuração de Release (Semantic Release)

Este projeto utiliza **Semantic Release** para automatizar versões, CHANGELOG e tags no GitHub.

1. Commit com **Conventional Commits** (`feat:`, `fix:`, `docs:` etc.)
2. Push em branches `main`, `develop` ou `release/*`
3. GitHub Actions executa `npx semantic-release` e:

* Analisa commits (`@semantic-release/commit-analyzer`)
* Gera notas de release (`@semantic-release/release-notes-generator`)
* Atualiza `CHANGELOG.md` (`@semantic-release/changelog`)
* Cria release no GitHub (`@semantic-release/github`)
* Faz commit de `CHANGELOG.md`, `package.json` e `Cowl.js` (`@semantic-release/git`)

## 🛠️ Desenvolvimento

```bash
# Instala dependências dev e roda watcher localmente
npm install
npm run dev
```

## 📝 Licença

MIT © Natanael Marcelino da Silva Vieira