All Projects → kt3k → node-saku

kt3k / node-saku

Licence: MIT license
Ⓜ️ Markdown-based task runner

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to node-saku

Pug Sass Boilerplate Starter Kit
A Front-end template for building web apps or sites using Pug(Jade) and Sass
Stars: ✭ 92 (+29.58%)
Mutual labels:  task-runner
Foy
A simple, light-weight and modern task runner for general purpose.
Stars: ✭ 157 (+121.13%)
Mutual labels:  task-runner
Taskr
A fast, concurrency-focused task automation tool.
Stars: ✭ 2,421 (+3309.86%)
Mutual labels:  task-runner
Pyflow
A lightweight parallel task engine
Stars: ✭ 108 (+52.11%)
Mutual labels:  task-runner
Wordmove
Multi-stage command line deploy/mirroring and task runner for Wordpress
Stars: ✭ 1,791 (+2422.54%)
Mutual labels:  task-runner
Tasker
Tasker is a multipurpose task runner
Stars: ✭ 160 (+125.35%)
Mutual labels:  task-runner
Redrun
✨🐌 🐎✨ fastest npm scripts runner
Stars: ✭ 85 (+19.72%)
Mutual labels:  task-runner
composer
API-first task runner with three methods: task, run and watch.
Stars: ✭ 35 (-50.7%)
Mutual labels:  task-runner
Orbit
📡 A cross-platform task runner for executing commands and generating files from templates
Stars: ✭ 148 (+108.45%)
Mutual labels:  task-runner
Tusk
The modern task runner
Stars: ✭ 181 (+154.93%)
Mutual labels:  task-runner
Mmake
Mmake is a small program which wraps make to provide additional functionality, such as user-friendly help output, remote includes, and eventually more. It otherwise acts as a pass-through to standard make.
Stars: ✭ 1,593 (+2143.66%)
Mutual labels:  task-runner
Poethepoet
A task runner that works well with poetry.
Stars: ✭ 137 (+92.96%)
Mutual labels:  task-runner
Pypyr
pypyr task-runner cli & api for automation pipelines. Automate anything by combining commands, different scripts in different languages & applications into one pipeline process.
Stars: ✭ 173 (+143.66%)
Mutual labels:  task-runner
Fabium
+100 for productivity
Stars: ✭ 108 (+52.11%)
Mutual labels:  task-runner
Dramatiq
A fast and reliable background task processing library for Python 3.
Stars: ✭ 2,844 (+3905.63%)
Mutual labels:  task-runner
Gulp Pure Start
Start your project with 'Gulp Pure Start' easily than ever!
Stars: ✭ 89 (+25.35%)
Mutual labels:  task-runner
Svelto.tasks
Svelto Tasks - C# promises compliant multi-threaded tasks runner
Stars: ✭ 159 (+123.94%)
Mutual labels:  task-runner
taskrunner.nvim
🏃 Runs Gulp/Gruntfiles in terminal splits
Stars: ✭ 13 (-81.69%)
Mutual labels:  task-runner
Ten Hands
⚡ Simplest way to organize and run command-line tasks
Stars: ✭ 228 (+221.13%)
Mutual labels:  task-runner
Shred
Shared resource dispatcher
Stars: ✭ 178 (+150.7%)
Mutual labels:  task-runner

saku (作) v0.11.2

CircleCI Build status

codecov

Markdown-based task runner

requires node >= 8.x.

saku is a simple task runner based on markdown syntax. You can define and describe your tasks in markdown file saku.md and execute them with saku command.

💿 Install

Via npm:

npm i -g saku

Usage

First, create a markdown file saku.md:

# build
> Build the go binary.

    go build -v -i main.go

# test
> Run all the go tests.

    go test -race ./...

# js

    minify -o public/script.js src/js

# css

    minify -o public/style.css src/css

The above defines 4 tasks build test js css. (A heading (#) is a task title!)

If you hit the command saku build, it invokes build task, go build -v -i main.go in the above example.

If you hit saku --info it shows the list of the descriptions of the all tasks.

Note: 4-space or tab indent makes code block in markdown syntax. See here

    echo hello
    echo world

The above is a code block of echo hello for the first line and echo world for the second line.

saku.md Rules

  • Heading (# title) starts the task definition.
  • Code blocks are commands.
    • Code blocks can have multiple commands. They will be executed sequentially.
  • Blockquotes are description of the task.
  • Anything else is ignored.
  • Anything before the first heading is ignored.

For example:

# build
> Build the go binary.

    echo Starting build go binary
    go build -v -i main.go

The above defines the task build, which has the description Build the go binary.. It has two commands echo Starting build go binary and go build -v -i main.go and they run in sequence.

Parallel execution

saku command has -p, --parallel option. You can run tasks in parallel like the below:

saku -p watch-js run-server

Use saku in saku.md

If you need to invoke tasks from another task, use saku command in saku.md.

# js

    browserify src/main.js > build/app.js

# minify

    uglify-js < build/app.js > build/app.min.js

# dist

    saku -s js minify

If you need to invoke tasks in parallel from another task, use saku -p.

# watch

    my-watcher

# serve

    my-server

# start

    saku -p serve watch

CLI Usage

Usage: saku [options] <task, ...> [-- extra-options]

Options:
  -v, --version   - - - Shows the version number and exits.
  -h, --help  - - - - - Shows the help message and exits.
  -i, --info  - - - - - Shows the task information and exits.
  -p, --parallel  - - - Runs tasks in parallel. Default false.
  -s, --sequential  - - Runs tasks in serial. Default true.
  -c, --config <path> - Specifies the config file. Default is 'saku.md'.
  -r, --race  - - - - - Set the flag to kill all tasks when a task
                        finished with zero. This option is valid only
                        with 'parallel' option.
  -q, --quiet   - - - - Stops the logging.

The extra options after '--' are passed to each task command.

Notes

Example use cases

Note: Please add yours if you use saku in your OSS project!

Why not just use run-script?

If your project is JavaScript project and it has package.json, then run-script is probably enough for your use case. The main target of saku is non-javascript project where no good task runner is available.

The origin of the name

Saku is the Japanese name for the Chinese character "作", which means "make". Saku is intended to be an alternative of make command (of a task runner use case).

Prior Art

History

  • 2018-01-31 v0.11.0 Pass options after --.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].