1.0.0 • Published 2 years ago

synd v1.0.0

Weekly downloads
12
License
MIT
Repository
github
Last release
2 years ago

Synd

npm version CI License: MIT install size Coverage Status

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

NameTypeDefaultDescription
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}falseEnables/Disables syncing upon program start
watch{Boolean}trueEnables/Disables watching for file/directory changes
globalGitignore{Boolean}falseEnables/Disables using global .gitignore for syncing
localGitignore{Boolean}falseEnables/Disables using local .gitignore for syncing
showRsyncCommand{Boolean}falseEnables/Disables displaying rsync command upon start
parseOutput{Boolean}falseEnables/Disables attempting to parse rsync output
include{String[]}falsePaths to include
exclude{String[]}falsePaths 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
1.0.0

2 years ago

0.1.1

4 years ago

0.1.0

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.4-0

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago