rrclone is an Rclone wrapper to use YAML/JSON configuration for backup tasks.
TODO: Provide full README.
NOTE: This is a work-in-progress application with a very limited functionality. Expect breaking changes and improved functionality as we move on.
First, make sure that rclone is installed.
Then, download the latest version from releases for your architecture and put it in your path:
curl -sLo /tmp/rrclone "https://github.com/telostat/rrclone/releases/latest/download/rrclone-$(uname -s)-$(uname -m)"
sudo install /tmp/rrclone /usr/local/bin-
Configure rclone
-
Prepare configuration file for
rrclone. -
Run
rrclonein dry-run mode:rrclone ./config.yaml --dry-run
-
Run rrclone:
rrclone ./config.yaml
Enter Nix shell:
nix-shellInstall cross:
cargo install -f crossFirst, merge develop to main:
git checkout main
git merge --no-ff developUpdate the version information in Cargo.toml if required and run
cargo build to update Cargo.lock.
Set the release tag (example is 0.0.2):
export RELTAG="0.0.2"Update the CHANGELOG.md by running:
git-chglog --output CHANGELOG.md --next-tag "${RELTAG}"Commit changes:
git commit -am "chore(release): ${RELTAG}"Tag:
git tag -a -m "Release ${RELTAG}" "${RELTAG}"Push everything:
git push --follow-tags origin mainCreate a new GitHub release:
gh release create "${RELTAG}" --generate-notes --title "v${RELTAG}" --draftBuild on your own architecture and upload to the release(hoping that it is Linux x86_64, otherwise must add this to cross build instructions, too):
cargo build --release
mv target/release/rrclone "target/release/rrclone-$(uname -s)-$(uname -m)"
gh release upload "${RELTAG}" --clobber "target/release/rrclone-$(uname -s)-$(uname -m)"Build and upload other architectures:
cross build --target aarch64-unknown-linux-gnu --release
mv target/aarch64-unknown-linux-gnu/release/rrclone "target/aarch64-unknown-linux-gnu/release/rrclone-Linux-aarch64"
gh release upload "${RELTAG}" --clobber "target/aarch64-unknown-linux-gnu/release/rrclone-Linux-aarch64"
cross build --target arm-unknown-linux-gnueabihf --release
mv target/arm-unknown-linux-gnueabihf/release/rrclone "target/arm-unknown-linux-gnueabihf/release/rrclone-Linux-arm"
gh release upload "${RELTAG}" --clobber "target/arm-unknown-linux-gnueabihf/release/rrclone-Linux-arm"
cross build --target armv7-unknown-linux-gnueabihf --release
mv target/armv7-unknown-linux-gnueabihf/release/rrclone "target/armv7-unknown-linux-gnueabihf/release/rrclone-Linux-armv7"
gh release upload "${RELTAG}" --clobber "target/armv7-unknown-linux-gnueabihf/release/rrclone-Linux-armv7"Switch to develop and rebase:
git checkout develop
git rebase mainBump development version, run cargo build to update Cargo.lock,
commit and git push.
See LICENSE file.