Re-inventing the wheel for the purposes of learning Rust 🦀.
At a high level, this package is an application for syncing "workspaces" to different places. Those places could be different local directories, directories on remote machines, or cloud block storage. Local "workspaces" (or directories) are watched for file modifications. When a modification occurs, a syncing action will be performed by any number of syncers configured for the workspace
At its core, this package is basically a simple wrapper on top of fswatch/inotify/etc + rsync.
Build the application binary
cargo build --releaseThen run it
./target/release/rust-dev-sync syncThe application uses a config file for storing which local paths to sync, what to sync them with, and where. The config file has a basic schema that can be understood better by looking at the example.
- Add subcommand for modifying config file
- Beef up testing
- Add block storage syncers