// about the actions it would take but does not modify the filesystem.

args:["--verbose"]// Optional array of any additional rsync args you'd like to include.

}

The above options are provided for convenience and are designed to cover the most common use cases for rsync, they don't necessarily map directly to single rsync arguments with the same names. If you'd like to handcraft your rsync command then just use the src, dest and args options.

Tests

Basic tests are run on Vows Async BDD via this package's Gruntfile. To test rsyncwrapper clone the repo and ensure that the devDependancies are present. Additionally ensure that Grunt and Vows are installed globally, and then invoke:

$ npm test

Examples

Copy a single file to another location. If the dest folder doesn't exist rsync will do a mkdir and create it. However it will only mkdir one missing directory deep (i.e. not the equivalent of mkdir -p).

rsync({

src:"./file.txt",

dest:"./tmp/file.txt"

},function(error,stdout,stderr,cmd){

if( error ){

// failed

console.log(error.message);

}else{

// success

}

});

Copy the contents of a directory to another folder, while excluding txt files. Note the trailing / on the src folder and the absence of a trailing / on the dest folder - this is the required format when copy the contents of a folder. Again rsync will only mkdir one level deep:

rsync({

src:"./src-folder/",

dest:"./dest-folder",

recursive:true,

exclude:["*.txt"]

},function(error,stdout,stderr,cmd){

if( error ){

// failed

console.log(error.message);

}else{

// success

}

});

Syncronise the contents of a directory on a remote host with the contents of a local directory using the checksum algorithm to determine if a file needs copying: