miteru

0.7.0 • Public • Published

npm npm

miteru

Basic file watcher.

Easy to use

CLI

miteru '**/*.js' -e 'echo $evt: $file'

Module

var miteru = require( './dist/miteru.js' )
var watcher = miteru.watch( function ( evt, filepath ) {
  switch ( evt ) {
    case 'init':
      // only emitted once during the first polling cycle ( if the file exists )
      console.log( 'init: ' + filepath )
      break
 
    case 'add':
      // file was added ( did not exists previously, exists now )
      console.log( 'add: ' + filepath )
      break
 
    case 'change':
      // file was changed ( existed previously, exists now, mtime or content changed )
      console.log( 'change: ' + filepath )
      break
 
    case 'unlink':
      // file was removed ( existed previously, does not exist now )
      console.log( 'unlink: ' + filepath )
      break
  }
} )
 
watcher.add( 'src/**/*.js' )
 
setTimeout( function () {
  console.log( watcher.getWatched() ) // array of files being watched
  watcher.clear()
  console.log( watcher.getWatched() ) // empty array ( no files being watched )
 
  setTimeout( function () {
    watcher.add( 'package.json' )
 
    setTimeout( function () {
      watcher.clear() // will exit naturally because no files are being watched
    }, 3000 )
  }, 3000 )
}, 5000 )

Example

$ miteru '**/*.js' -e 'echo file: $file'
events watched: add,change
watching pattern: **/*.js
10 files are being watched

CLI STDIN commands

The miteru process listens for line separated STDIN commands ( first match algorithm )

list, files, watched

prints out the files being watched

$ miteru '**/*.js' -e 'echo file: $file'
events watched: add,change
watching pattern: **/*.js
11 files are being watched
fil
  /Users/mollie/code/miteru/cli.js
  /Users/mollie/code/miteru/dist/miteru.js
  /Users/mollie/code/miteru/sample.js
  /Users/mollie/code/miteru/src/index.js
  /Users/mollie/code/miteru/test/bench-readdir.js
  /Users/mollie/code/miteru/test/samples/animal.js
  /Users/mollie/code/miteru/test/samples/main.js
  /Users/mollie/code/miteru/test/test-close.js
  /Users/mollie/code/miteru/test/test-unwatch.js
  /Users/mollie/code/miteru/test/test.js
  /Users/mollie/code/miteru/test/tmp/unwatch.js
watched files: 11

execute

prints out the execute command being used

$ ./cli.js '**/*.js' -e 'echo file: $file'
events watched: add,change
watching pattern: **/*.js
11 files are being watched
ex
  -e echo file: $file

Install

locally ( project specific, for use with npm scripts )

npm install miteru

globally

npm install -g miteru

Why

Simple file watching that just works ™ as fast and as painless as possible. Intended for watching files during development qickly and easily to trigger rebuilds etc.

Alternatives

chokidar

chokidar-cli

How

Elastic fs.stat polling. Rank orders each file by how often it's changed and sets polling priority accordingly.

Usage

$ miteru --help

Usage: miteru [options] <files>

Options:

-e, --execute <command>         Execute a command when a file event occurs.

-i, --init                      Listen for file init events.
-a, --add                       Listen for file add events.
-c, --change                    Listen for file change events.
-u, --unlink                    Listen for file unlink events.

                                By default --add and --change events
                                are listened to if no events are specified.

--limit <milliseconds>          Minimum allowed polling interval.

-v, --verbose                   Verbose output.
--stats                         Print detailed stats every 1 second.

-V, --version                   Print miteru version and exit.
-h, --help                      Print help ( this text ) and exit.

Examples:
  miteru -e 'npm run build' "src/**/*.js"
  miteru -iacu -e 'echo $evt: $file' "src/**/*.js"
  miteru -e 'sshpass -p "giraffe" scp $file user@10.0.0.6:/home/user/app/$file'

    NOTE: using sshpass -p "password" will add your password to bash history -- use -f to load password from file.

Test

npm test

Package Sidebar

Install

npm i miteru

Weekly Downloads

20

Version

0.7.0

License

MIT

Unpacked Size

50.9 kB

Total Files

5

Last publish

Collaborators

  • talmobi