Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/tbrand/neph

A modern command line job processor, similar with make command
https://github.com/tbrand/neph

command-line command-line-app command-line-tool concurrency crystal job-processor job-scheduler make yml

Last synced: about 2 months ago
JSON representation

A modern command line job processor, similar with make command

Awesome Lists containing this project

README

        




Latest version
Latest version





- A modern command line job processor written in Crystal :rocket:
- Parallel job execution. :rocket:
- Use like `make` command. :rocket:

## Installation

### Arch Linux
Use your favourite AUR helper.
Package name: [`neph-git`](https://aur.archlinux.org/packages/neph-git/)

### Mac
You can install Neph with `brew`.
```bash
$ brew tap tbrand/homebrew-neph
$ brew install neph
```

### Manual
Build dependencies:
- `crystal` and `shards` for building the binary
- `go-md2man` for generating the man page

It needs `libyaml` to be installed.

If you have a previous version of `neph` installed:
```bash
$ git clone https://github.com/tbrand/neph
$ cd neph
$ neph # man page will be at neph.1, binary will be at bin/neph
```
If you don't have a previous version of `neph` installed:
```bash
$ git clone https://github.com/tbrand/neph
$ cd neph
$ shards build # Now executable binary is located at bin/neph
$ bin/neph man # Generate man page. It will be located at neph.1
```

## Usage

All features for neph.yaml is written in [sample/neph.yaml](https://github.com/tbrand/neph/blob/master/sample/neph.yaml). So please refer for the details.

Wiki is also maintained as a document. Here is a full features.
- [Execute command from neph](https://github.com/tbrand/neph/wiki/Execute-command-from-neph)
- [Define dependencies between jobs](https://github.com/tbrand/neph/wiki/Define-dependencies-between-jobs)
- [Working directory](https://github.com/tbrand/neph/wiki/Working-directory)
- [Specify sources](https://github.com/tbrand/neph/wiki/Specify-sources)
- [Ignoring errors](https://github.com/tbrand/neph/wiki/Ignoring-errors)
- [Hide executing command](https://github.com/tbrand/neph/wiki/Hide-executing-command)
- [Set a job result to env vars](https://github.com/tbrand/neph/wiki/Set-a-job-result-to-env-vars)
- [Import other configurations](https://github.com/tbrand/neph/wiki/Import-other-configurations)
- [Command line options](https://github.com/tbrand/neph/wiki/Command-line-options)
- [Log locations](https://github.com/tbrand/neph/wiki/Log-locations)
- [Log modes](https://github.com/tbrand/neph/wiki/Log-modes)

## Use cases

Neph is used in [which_is_the_fastest](https://github.com/tbrand/which_is_the_fastest).
The build time is **reduced from 102[sec] to 33[sec]**.
The [neph.yaml](https://github.com/tbrand/which_is_the_fastest/blob/master/neph.yaml) is here.

## Contributing

1. Fork it ( https://github.com/tbrand/neph/fork )
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create a new Pull Request

## Contributors

- [tbrand](https://github.com/tbrand) Taichiro Suzuki - creator, maintainer
- [notramo](https://github.com/notramo) Márton Szabó - maintainer