# Turbo Sync

A no-nonsense file/folder synchronization application

## Requirements

Turbo sync requires **node js** and **rsync**

## Installation

To install simply run:

```bash
npm install --registry="https://git.tben.me/api/packages/Moduletrace/npm/" -g turbosync
```

To update run:

```bash
npm update --registry="https://git.tben.me/api/packages/Moduletrace/npm/" -g turbosync
```

## Usage

Turbo Sync requires a `JSON` file with the correct configuration. example:

```bash
turbosync ./project/sync/config.json
```

However if you have a file named `turbosync.config.json` in the working directory simply run:

```bash
turbosync
```

In this case Turbo Sync will automatically look for a file named `turbosync.config.json` in the working directory for config params.

### Config File

The config file is a json file that contains all the information needed to run turbosync. Example:

```json
[
    {
        "title": "Sync Files",
        "files": [
            "/home/user/file1.txt",
            "/home/user/file2.txt",
            {
                "path": "/home/user/file3",
                "user": "root",
                "host": "5.34.75.236",
                "ssh_key": "/home/user/.ssh/key"
            }
        ]
    },
    {
        "title": "Sync Folders",
        "options": {
            "delete": true
        },
        "folders": [
            "/home/user/folder1",
            "/home/user/folder2",
            {
                "path": "/home/user/folder3",
                "user": "user",
                "host": "5.39.67.76",
                "ssh_key": "/home/user/.ssh/key"
            }
        ]
    }
]
```

You can also use environment variables in the config file. Example:

```json
[
    {
        "title": "Sync Folders",
        "folders": ["$FOLDER_1", "$FOLDER_2"]
    }
]
```