yet another rsync wrapper
npm install syndOpinionated rsync wrapper written in javascript.
``sh`
npm install --global synd
Create a ~/synd.config.js file in your home directory with a configuration preset for your project.
`js`
module.exports = {
// remote sync
presetName: {
src: '/Users/yourUserName/path/to/a/project/to/sync/',
dest: '/home/yourUserName/path/to/dir/to/sync/to',
server: 'your.company.org'
},
// local sync
anotherPreset: {
src: '/Users/yourUserName/path/to/another/project/to/sync/',
dest: '/Users/yourUserName/path/to/another/dir'
}
};
To start sync process run the following
``
synd presetName
|Name | Type | Default | Description |
|--------------------------------------------|--------------|---------|--------------------------------------------------------|
|src | {String} | | Absolute path to the directory you want to sync |dest
| | {String} | | Absolute path to the directory you want to sync to |server
| | {String} | | Name of the server you want to sync to |initSync
| | {Boolean} | false | Enables/Disables syncing upon program start |watch
| | {Boolean} | true | Enables/Disables watching for file/directory changes |globalGitignore
| | {Boolean} | false | Enables/Disables using global .gitignore for syncing |localGitignore
| | {Boolean} | false | Enables/Disables using local .gitignore for syncing |showRsyncCommand
| | {Boolean} | false | Enables/Disables displaying rsync command upon start |parseOutput
| | {Boolean} | false | Enables/Disables attempting to parse rsync output |include
| | {String[]} | false | Paths to include |exclude
| | {String[]} | false | Paths to exclude |
directory.Example:
'/users/anon/path/to/project/'$3
Optional. If you want to sync to a remote machine. You need to specify the server name.Example:
'machine.host.org'$3
By default synd waits for a file change to start syncing, set to true to start syncing upon running synd .Example:
true$3
You can use your project and global gitignore to generate rsync filter file to avoid syncing not wanted files.Example:
true$3
Synd uses rsync under the hood to sync your files. If you want to see what commands it generates set it to true.Example:
true$3
Use this option to specify additional rules to include files to syncing process which otherwise would not be synced.Example:
['**/test']$3
Use this option to specify additional rules to exclude files from syncing process which otherwise would be synced.Example:
['/.DS_Store', '/node_modules']Notes
After you run synd it will generate a filter file for your project and place it in
~/.synd/presetName.[hash].filter. If file already exists synd will use it instead.You can also see a list of all your presets by running
`
synd --list
``