sync application configuration and settings across multiple multiplatform devices

Overview


synko

sync application configuration and settings across multiple multiplatform devices

license

Key Features ⚗️ Installation 📑 How To Use 🤔 FAQ 🛠️ 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 (Read FAQ to know more)
  • 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 anytime later 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.

🤔 FAQ

Only Dropbox supported?

Well synko works with any cloud storage syncing solution as long as all the devices use the same solution. You just need to provide synko with the path to the folder which is getting synced by the cloud storage syncing solution. Dropbox is the best one to go with as it has support for mutiple platforms.

🛠️ 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.

A gRPC-Web implementation for Python

Sonora Sonora is a Python-first implementation of gRPC-Web built on top of standard Python APIs like WSGI and ASGI for easy integration. Why? Regular

Alex Stapleton 216 Dec 30, 2022
The Delegate Network: An Interactive Voice Response Delegative Democracy Implementation of Liquid Democracy

The Delegate Network Overview The delegate network is a completely transparent, easy-to-use and understand version of what is sometimes called liquid

James Bowery 2 Feb 25, 2022
Easy-to-use sync library for handy proxy parse

Proxy Parser About Synchronous library, for convenient and fast parsing of proxies from different sources. Uses Scrapy as a parser. At the moment the

Michael Mironov 2 Nov 22, 2022
A simple Tor switcher script switches tor nodes in interval of time

Tor_Switcher A simple Tor switcher script switches tor nodes in interval of time This script will switch tor nodes in every interval of time that you

d4rk sh4d0w 2 Nov 15, 2021
pyWhisker is a Python equivalent of the original Whisker made by Elad Shamir and written in C#.

PyWhisker pyWhisker is a Python equivalent of the original Whisker made by Elad Shamir and written in C#. This tool allows users to manipulate the msD

Shutdown 325 Jan 08, 2023
A simple, configurable application and set of services to monitor multiple raspberry pi's on a network.

rpi-info-monitor A simple, configurable application and set of services to monitor multiple raspberry pi's on a network. It can be used in a terminal

Kevin Kirchhoff 11 May 22, 2022
Exfiltrate files using the HTTP protocol version ("HTTP/1.0" is a 0 and "HTTP/1.1" is a 1)

http-protocol-exfil Use the HTTP protocol version to send a file bit by bit ("HTTP/1.0" is a 0 and "HTTP/1.1" is a 1). It uses GET requests so the Blu

Ricardo Ruiz 23 Apr 30, 2022
Tripwire monitors ports and icmp to send the admin a message if somebody is scanning a machine that shouldn't be touched

Tripwire monitors ports and icmp to send the admin a message if somebody is scanning a machine that shouldn't be touched

3 Apr 05, 2022
A Cheap Flight Alert program sends you a SMS to notify cheap flights in next 8 months.

Flight Dealer A Cheap Flight Alert program sends you a SMS to notify cheap flights (return trips) in next 6 months. Installing Download the Python 3 i

Aytaç Kaşoğlu 2 Feb 10, 2022
Multiple-requests-poster - A tool to send multiple requests to a particular website written in Python

Multiple-requests-poster - A tool to send multiple requests to a particular website written in Python

RLX 2 Feb 14, 2022
A Python server and client app that tracks player session times and server status

MC Outpost A Python server and client application that tracks player session times and server status About MC Outpost provides a session graph and ser

Grant Scrits 0 Jul 23, 2021
Multi-vendor library to simplify CLI connections to network devices

Netmiko Multi-vendor library to simplify CLI connections to network devices Why Netmiko? Network automation to screen-scraping devices is primarily co

Kirk Byers 3k Jan 01, 2023
Malcolm is a powerful, easily deployable network traffic analysis tool suite for full packet capture artifacts (PCAP files) and Zeek logs.

Malcolm is a powerful, easily deployable network traffic analysis tool suite for full packet capture artifacts (PCAP files) and Zeek logs.

Cybersecurity and Infrastructure Security Agency 1.3k Jan 08, 2023
Enrich IP addresses with metadata and security IoC

Stratosphere IP enrich Get an IP address and enrich it with metadata and IoC You need API keys for VirusTotal and PassiveTotal (RiskIQ) How to use fro

Stratosphere IPS 10 Sep 25, 2022
TsuserverMoS - A Python-based server for Attorney Online,

tsuserverMoS A Python-based server for Attorney Online, forked from RealKaiser/tsuserverCC Requires Python 3.7+ and PyYAML. Changes/additions from tsu

1 Dec 30, 2021
A Python script that alerts via SMS when a stock is reaching an inflection point

TradeAlert Not sure what this will ultimately become, but for now, its a Python script that alerts via SMS when a stock is reaching an inflection poin

3 Feb 22, 2022
This Tool Help To Information gathering for domain name or ip address...

Owl-Eye This Tool Help To Information gathering for domain name or ip address... follow this command $apt update && upgrade $apt install python apt in

Black Owl 6 Nov 12, 2022
Fmog: Fortinet Mass Object Generator. This script will take a list of IP addresses and create address objects with the same name

Fmog: Fortinet Mass Object Generator This script will take a list of IP addresses and create address objects with the same name. It will also add them

2 Oct 26, 2021
MQTT Explorer - MQTT Subscriber client to explore topic hierarchies

mqtt-explorer MQTT Explorer - MQTT Subscriber client to explore topic hierarchies Overview The MQTT Explorer subscriber client is designed to explore

Gambit Communications, Inc. 4 Jun 19, 2022
A fully automated, accurate, and extensive scanner for finding log4j RCE CVE-2021-44228

log4j-scan A fully automated, accurate, and extensive scanner for finding vulnerable log4j hosts Features Support for lists of URLs. Fuzzing for more

FullHunt 3.2k Jan 02, 2023