A utility that watches a local folder for changes and acts as files in that folder change.
Snowdrop is a Node.js utility that watches a local folder for changes and acts as files in that folder change. Among other things, snowdrop can:
Snowdrop was built as a sidecar utility for VIM to allow me to work locally with files that are remote. Because some of the applications I work on aren't easily hosted locally, I needed something that lets me take advantages of neato VIM plugins and features (CtrlP, NERDTree, tags) as if I was running them on the local system.
Snowdrop will ask for info about a remote folder, pull those files down, and watch as you make change so that files can be pushed to the remote machine and ctags files can be updated.
Requires a very recent version of Node.js. This was build using v0.9.10. Tested on Mac OS X 10.8.
Requres rsync and (exuberant) ctags if you plan to use them.
To install, run:
$ npm install -g snowdrop
Works best with remote systems where you have ssh keys installed.
To use snowdrop, create a new local directory and run
$ mkdir project; cd project && snowdrop
Follow the prompts to continue the setup process:
snowdrop in the project directory to start the monitoring
process. As a files changes, is added, or is removed, snowdrop runs the
configured commands (usually at least an rsync and ctags).
snowdrop -u to rsync the remote files to the local system.
After snowdrop is initialized, a file named
.snowdrop.json appears in
the current working directory. You can edit this file to change how
snowdrop reacts to changes in the filesystem.
The config file contains a JSON object with the following properties:
source: The local directory to sync. Shouldn't normally be changed.
destination: The remote folder to sync to. Set to
falseif you do not want to use rsync.
ignore: If a regular expression in this array matches a filename, snowdrop will not act when that file changes. Ignores
init: Commands to run when snowdrop is started.
rsync: Flags and options used when snowdrop rsyncs the source to the destination.
ctags: Set to
trueif ctags should be used to create a file named
tagsin the current working directory.