synd
v2.0.1
Published
yet another rsync wrapper
Downloads
134
Readme
Synd
Opinionated rsync wrapper written in javascript.
Install
npm install --global syndUsage
Create a ~/synd.config.js file in your home directory with a configuration preset for your project.
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 presetNamePreset Options
|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 |
src
if ends with a slash it's contents will be synced into dest directory.
Example: '/users/anon/path/to/project/'
server
Optional. If you want to sync to a remote machine. You need to specify the server name.
Example: 'machine.host.org'
initSync
By default synd waits for a file change to start syncing, set to true to start syncing upon running synd <presetName>.
Example: true
gitignores
You can use your project and global gitignore to generate rsync filter file to avoid syncing not wanted files.
Example: true
showRsyncCommand
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
include
Use this option to specify additional rules to include files to syncing process which otherwise would not be synced.
Example: ['**/test']
exclude
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