bewitch

File watch and synchronizer

npm install bewitch
14 downloads in the last week
30 downloads in the last month

Bewitch

Watches local directories and syncs the files to a local or remote location when contents have changed.

Installation

npm -g i bewitch

Usage

Simple is as simple does.

bewitch path/to/source user@host:/path/to/destination

Of course bewitch also allows multiple routes.

bewitch -c options.json

options.json:

{
    "ignore" : ".git",
    "routes" : {
        "path/to/foo" : "user@host:/path/to/foo",
        "path/to/bar" : "user@host:/path/to/bar"
    }
}

When you need fine-grained control, bewitch is there for you.

options.json:

{
    "ignore" : [ ".git", ".svn" ],
    "include" : "public",
    "exclude" : "test/**/*.md",
    "routes" : [{
        "source" : "path/to/bar",
        "destination" : "user@host:/path/to/bar"
    }, {
        "source" : "path/to/foo",
        "destination" : "user@host:/path/to/foo",
        "ignore" : ".*.sw*",
        "include" : [ "public/test.php", "*.js" ],
        "exclude" : "public/sass"
    }]
}

Relative paths are assumed to be relative to the config file.

Requirements

To run bewitch properly, you'll need both ssh and rsync. Windows people can get them from Cygwin. Mac and Linux people should already have them.

In addition, you'll need ssh access to the remote location if you want to sync to it!

npm loves you