watchfolder-jet

2.1.59 • Public • Published

Usage (I hope...)

Tails all logs in a directory including those created when the program is running.

    const jet = require("watchfolder-jet").watch(
        "/var/log/my-logs/"
    ).filter(
        (file) => (file.action === 'add' || file.action === 'create') && file.isReadable
    ).map(
        (file) => tail(file).pipe(new scramjet.StringStream())
            .split("\n")
    ).reduceNow(
        (acc, file) => (acc.add(file)),
        new scramjet.MultiStream([])
    ).mux(
        // comparator for log lines (just for the example, there should be no need for this except for a couple first lines)
        (lineA, lineB) => new Date(lineA.split(" ").slice(0,2).join(" ")) - new Date(lineB.split(" ").slice(0,2).join(" "))
    ).pipe(
        process.stdout
    );

API

require("watchfolder-jet").watch(directory);

Watches a directrory for changes

require("watchfolder-jet").finished(directory, {/* options */ timeout: 10000});

Watches a directory for completed files only.

Stream objects

The streamed objects have the following structure:

    {
        action: "",    // The action that happened on the file, one of the following:
                       //     ["add", "create", "remove", "change"];
        filename: "",  // The changed filename (full path)
        stat: {},      // The up to date stat
        prevstat: {}   // The previous stat (only on "change")
    }

License and contributions

The module is released under the condition of the MIT license. Please see the attached LICENSE.

Readme

Keywords

none

Package Sidebar

Install

npm i watchfolder-jet

Weekly Downloads

2

Version

2.1.59

License

MIT

Unpacked Size

15.3 kB

Total Files

14

Last publish

Collaborators

  • patu
  • scramjetorg
  • michalcz
  • stoq