https://github.com/atomicptr/zebang
File based script runner powered by shebang
https://github.com/atomicptr/zebang
ocaml script-runner
Last synced: 29 days ago
JSON representation
File based script runner powered by shebang
- Host: GitHub
- URL: https://github.com/atomicptr/zebang
- Owner: atomicptr
- License: gpl-3.0
- Created: 2024-02-23T12:00:36.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-03-10T15:52:57.000Z (almost 2 years ago)
- Last Synced: 2025-03-07T00:37:45.370Z (11 months ago)
- Topics: ocaml, script-runner
- Language: OCaml
- Homepage:
- Size: 31.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# zebang
File based script runner powered by shebangs
## Installation
You currently have to download, compile and install (put it inside $HOME/.local/bin or something) yourself, I will change this down the line!
## Usage
zebang stores its scripts inside a directory named **.zebang** that should be in the root of your project.
Every script file represents a sub command and can be written in any programming language as long as you can
use shebang or executable flags (meaning binaries will work too).
Assuming the following directory structure:
```
.zebang/
test.sh
lint/
eslint.js
tsc.js
format/
prettier.js
```
You have the following commands available:
* zb test - runs test.sh
* zb lint - runs everything inside the lint directory (recursively)
* zb lint:eslint - runs lint/eslint.js
* zb lint:tsc - runs lint/tsc.js
* zb format - runs everything inside the format directory
* zb format:prettier - runs prettier.js
## Motivation
In JS projects you often define scripts inside the package.json files scripts key and then run them via: npm run SCRIPT
this is generally something I was always kinda fond off although I often ended up writing more complex scripts that are
stored inside a file so a general runner for an approach like this seemed sensible.
Also working with lots of other programming languages that do not have an unified way to execute scripts made me want to
write this tool.
## Name and pronounciation
The name is a variation of shebang. Imagine this being pronounced by a German.
## License
GNU General Public License v3
