synd
v1.0.0
Published
yet another rsync wrapper
Downloads
137
Readme
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