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

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