monit

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

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version Unknown
License MIT
CI Status Passing
Downloads 0
Last Indexed 2026-07-21 05:24

Installation

nimble install monit
choosenim install monit
git clone https://github.com/jiro4989/monit

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
monit - - - - - - -

Source

Repository https://github.com/jiro4989/monit
Homepage https://github.com/jiro4989/monit
Registry Source nimble_official

README

monit

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

monit

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 1.4.0

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