Skip to main content

Sync application configurations and settings across multiple multiplatform devices. Currently supports linux and osx, working in progress for windows

Project description


synko

sync application configuration and settings across multiple multiplatform devices

license

✨ Key Features⚗️ Installation📑 How To Use🛠️ Setup👨🧑 Contribution

✨ Features

Synko is still in development phase and is not tested throughly, so it is recommended to take backup of the config files before adding to synko. As any bug may lead to loss of data.

  • Sync application settings and configuration files across multiple devices (linux and macos)
  • Works with dropbox as of now (support for more soon)
  • User gets the freedom to add path to the config and setting files.
  • Freedom to sync specific set of files across specific set of devices. Here is an example:

feature-1-2

⚗️ Install

Install synko with pip

NOTE: If on using command not found: synko or similar message shows up then try running the above command as root user (sudo)

  pip install synko

📑 How to use

Note: on first usage of Synko it'll look for Dropbox directory and if not found, it will prompt to enter the path to dropbox. Also synko needs to register you device so it will prompt to enter device name which can be anything you want as long as it's not conflict with pre-registered devices. Here is how it looks:

In gif below, synko is running in WSL (Windows Subsystem Linux) and my dropbox folder is the Windows so I had to change the dropbox path to the one in windows for it to work properly.

unregistered

In case one want's to change/update the storage path then use synko info -p path/to/storage

Add

Usage: synko add [paths...] --config-name="configname"

adding files to synko

config-name can be anything, synko will add provided paths under the config name

add command 1

add multiple files to synko

Note: if --config-name / -c option is not used then it prompts to enter the config name as seen in below gif

add command 2

adding files under same config name

one can also add files to existing config names like so:

synko add ~/.config/random_app/newfile -c existing_config_name

How to sync?

Suppose there are two devices A and B. In device A you added a file like so:

Device A: synko add ~/.config/random_app/a.conf --config-name=config1

the file will be saved under config name "config1". In order to sync this file with device "B" you need to make sure that the file with similar name (a.conf in this case) already exists in device "B". If does not exist then create an empty file. After doing so you just need to add the file to synko in device B under the same config name used in device A (config1 in this case) like so:

Device B: synko add ~/.config/random_app/a.conf --config-name=config1

below is a demo syncing across device

It may also be possible that a.conf already exists in device B with some content which may differ from the one in device A. Conflict arise and user is given the options to choose which one's content should be saved:

syncing across device

Current process of syncing is bit tideous as of now but more changes will be made to make the process relatively easy.

Index

Usage: synko index

list all the added configurations

synko index

index

Remove

Usage: synko remove [options]

remove specific configuration/settings file added to synko

synko remove --config-name configuration_name_here

it asks to select one or multiple files one wants to remove from synko, user right arrow key to select and left arrow key to unselect , up and down arrow key to navigate. remove

If you don't want to remove any then select nothing and press enter, the process will be aborted

remove all config files added to Synko on current device for syncing (this won't affect other devices)

synko remove -a

remove all

Info

Usage: synko info [options]

displaying current synko settings

synko info

info

updating storage path

synko info -p path/to/storage/dir

info

in gif above synko is running in WSL (Windows Subsystem Linux) and my dropbox folder is the Windows so I had to change the dropbox path to the one in windows for it to work properly.

Reset

Usage: synko reset

Reset synko completely, (fresh as new)

This removes all the files added to synko on current device and also resets synko by unregistering you device and the storage path. So next time you run any synko command, you'll be prompted to register your device and if the default storage path is not found then you'll be prompted to enter storage path.

reset

In the gif above you can see that after reset command, the time when any other synko command is executed it prompts to register device.

🛠️ Setup

Install dependencies

using pipenv

pipenv install

using pip

pip3 install -r requirements.txt

Run:

After making changes make sure to run below command

sudo python3 setup.py install

now to run, directly use synko command.

👨🧑 Contribution

If you are interested in helping with project development, see contribution guide to find a set of tips.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

synko-0.9.0.tar.gz (14.8 kB view details)

Uploaded Source

Built Distributions

synko-0.9.0-py3.9.egg (25.7 kB view details)

Uploaded Source

synko-0.9.0-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file synko-0.9.0.tar.gz.

File metadata

  • Download URL: synko-0.9.0.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.5

File hashes

Hashes for synko-0.9.0.tar.gz
Algorithm Hash digest
SHA256 cb870b60b0721583df1442c598140d0a64c60aaf8493c73e7b7c040c05a359b1
MD5 4c2fc42f7a933862bcc77c1d705cdf75
BLAKE2b-256 7603d598838217077531c11a0ecd35bcfc86bf9779d9a479a3f0cf50ff1b155f

See more details on using hashes here.

File details

Details for the file synko-0.9.0-py3.9.egg.

File metadata

  • Download URL: synko-0.9.0-py3.9.egg
  • Upload date:
  • Size: 25.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.5

File hashes

Hashes for synko-0.9.0-py3.9.egg
Algorithm Hash digest
SHA256 1386250756068e407c00d24b005237f359fcc314a9cb49a8adc7d44ca9470bb7
MD5 5207ae4c96878d6f30bd20bed94a2a3a
BLAKE2b-256 11d1b283ccd61da8399e6b5c692d604ce4735d8c6c15c8ca4a97dbeca0b49285

See more details on using hashes here.

File details

Details for the file synko-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: synko-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 25.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.5

File hashes

Hashes for synko-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a0b87186ee057cf24098be7fbd9989c782166173bec52c11d3eb2796929cb292
MD5 66c2b529aba01e34b39cbcd82e950919
BLAKE2b-256 84633faff4096aaad48b7136374938dc9b3ca730f42b2b9b10bea93ba787c090

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page