GithubHelp home page GithubHelp logo

ivan-ristovic / sharpsync Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 0.0 72 KB

Simple directory synchronization CLI tool written in C#

License: GNU General Public License v3.0

C# 100.00%
csharp dotnet sync cli backup file-sync file-synchronization

sharpsync's Introduction

SharpSync

Simple cross-platform directory synchronization CLI tool written in C#.

SharpSync was created because I needed something to quickly backup a list of directories to an external drive. Since I could not find any programs that fit my requirements, I decided to create my own (and frankly it took me less time to code it than to search and try out all those other sync programs).

SharpSync can perform file/directory filtering as well as strict backup by deleting extra files/directories from destination folder. This behavior can also be filtered to exclude certain files/directories.

How to use

SharpSync is a CLI tool. Backups are formulated through a series of sync rules. SharpSync uses .json files to store the sync rules. This means that you can keep multiple sync rule files or transfer them between machines.

Current program options are:

  • add: Adds a new sync rule to the database with a variety of options:
    • zip: Compress the directory
    • top: Top directory only, no recursive
    • include-hidden: Include hidden files
    • delete-extra-files: Strict backup, delete extra files from destination
    • delete-extra-dirs: Strict backup, delete extra directories from destination
    • exclude-dirs: Directories to exclude (regex list)
    • exclude-files: Files to exclude (regex list)
    • include-dirs: Directories to include (regex list)
    • include-files: Files to include (regex list)
    • del-exclude-dirs: Directories to exclude from strict backup (regex list)
    • del-exclude-files: Files to exclude from strict backup (regex list)
  • remove: Removes a sync rule with options:
    • all: Removes all sync rules
  • list: Lists all sync rules.
  • sync: Initiates folder sync.
  • help: Prints command manual.

Starting the program without arguments prints out a help screen with all possible commands. You can also use help command on other commands, for example help sync.

Next steps?

  • More options: include/exclude lists (via regexes), rule search, rule activation/deactivation
  • Export/Import sync rules
  • Multiple sync destinations

sharpsync's People

Contributors

dependabot[bot] avatar ivan-ristovic avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.