synd v1.0.0
Synd
Opinionated rsync wrapper written in javascript.
Install
npm install --global synd
Usage
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 presetName
Preset 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