monit

A simple task runner. Run tasks and watch file changes with custom paths.


Keywords
cli, task-runner, developer-tools, automation, command, nim
License
MIT
Install
nimble install monit@#1.1.0

Documentation

monit

monit is the simple task runner. Run tasks and watch file changes with custom paths.

Usage

monit run commands when files have changed. monit needs a .monit.yml task definition file on current directory. Please you run below at first.

monit init

A template of .monit.yml will be generated. You edit the yaml file and you run below.

monit run

Task definitions

A example of .monit.yml of this repository. See below.

%YAML 1.2
%TAG !n! tag:nimyaml.org,2016:
--- !n!custom:MonitorConfig 
sleep: 1
targets: 
  - 
    name: Task name
    paths: [src, tests]
    commands:
      - nimble build --hints:off
      - nimble test
    extensions: [.nim]
    files: []
    exclude_extensions: []
    exclude_files: []
    once: y

A descriptions of these keys and values.

  • sleep - A interval to monitor files (secconds)

Targets

key value
name Task name ( for human )
paths Target directory to monitor
commands Commands to run when files have changed
extensions Extensions of target files
files File path of target files
exclude_extensions Extensions of exclude files
exclude_files File path of exclude files
once Run command once at first when you executed monit

Installation

nimble install monit

Development

% nim -v
Nim Compiler Version 0.20.2 [Linux: amd64]
Compiled at 2019-07-17
Copyright (c) 2006-2019 by Andreas Rumpf

git hash: 88a0edba4b1a3d535b54336fd589746add54e937
active boot switches: -d:release

% nimble -v
nimble v0.10.2 compiled at 2019-08-11 10:07:38
git hash: couldn't determine git hash

Help

% monit help
This is a multiple-dispatch command.  Top-level --help/--help-syntax
is also available.  Usage is like:
    monit {SUBCMD} [subcommand-opts & args]
where subcommand syntaxes are as follows:

  init [optional-params] 
    Generate monit config file to current directory. If config file has existed then no generating.
  Options(opt-arg sep :|=|spc):
      -h, --help                  print this cligen-erated help
      --help-syntax               advanced: prepend,plurals,..
      --version      bool  false  print version

  run [optional-params] 
    Run commands on the commands of `file` when file modified.
  Options(opt-arg sep :|=|spc):
      -h, --help                               print this cligen-erated help
      --help-syntax                            advanced: prepend,plurals,..
      --version          bool    false         print version
      -l=, --loopCount=  int     -1            set loopCount
      -f=, --file=       string  ".monit.yml"  A task definition file path
      -v, --verbose      bool    false         Turn ON the debug logging
      -d, --dryRun       bool    false         Not execute commands

LICENSE

MIT