Skip to main content

Keep your machine's shell history synchronized.

Project description

SyncShell

Yet another tool for laziness
Keep your machine's shell history synchronized


Get SyncShell

Currently, SyncShell is just available on PyPi and by the following command install the latest version:

$ pip install syncshell # Maybe sudo need
$ syncshell -- --help
Type:        Application
String form: <syncshell.cli.Application object at 0x1035f51c0>
Docstring:   SyncShell CLI Application

Usage:       syncshell 
             syncshell auth
             syncshell download
             syncshell upload

How it Works

The actual idea of SyncShell is synchronization of your all device's shell history, it means you don't need to have concerns when you want to sync your office and home machine's shell history. Application integrated and built on top of Github Gist, and written in Python (CLI).

According to Github API, you can generate a token key with gist scope to access to Gist. Gists have two public, secret type which syncshell while executing syncshell upload command will upload your history file and store them on Github Gist securely (private).

On the others machine, by executing syncshell download after entering your token key and created Gist ID you can download the gist and sync your shell's history.

Gists will be secret until you don't share it with someone else, In other words, It'll be secret and safe until you only have the Github Token and Gist ID.

Usage

Currently, SyncShell just support zsh and supporting other shells is in WIP.

Before SyncShell can be useful you need to setup your Github token key:

  1. Open Github personal access tokens page, Generate a new token with gist scope feature.
  2. Execute the syncshell auth command, Enter your token key to validate and confirm it.
  3. Done :wink:

Now you can try to upload your shell history by the following command:

$ syncshell upload

After the uploading process, you'll take a Gist ID that by this ID and your Github token, you can download history on the others machine by executing the following command:

$ syncshell download

Todo

  • Write more test cases
  • Support zsh, bash

Contributing

So nice you wanna contribute to this repository. Thank you. You may contribute in several ways consists of:

  • Creating new features
  • Fixing bugs

Installing dependencies

Poetry Installation is straightforward walkthough to setup a versatile package manager.

By the following command install syncshell dependencies

# Clone syncshell repository
$ git clone git@github.com:msudgh/syncshell.git
$ cd syncshell
$ poetry install

Tests

Before submiting your PR, Execute the below command to be sure about passing test cases.

$ poetry run pytest -c pytest.ini -s

Done :wink:

License

The code is licensed under the MIT License. See the data's LICENSE file for more information.

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

syncshell-1.0.5.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

syncshell-1.0.5-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file syncshell-1.0.5.tar.gz.

File metadata

  • Download URL: syncshell-1.0.5.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.9.13 Darwin/21.5.0

File hashes

Hashes for syncshell-1.0.5.tar.gz
Algorithm Hash digest
SHA256 754bd7ae2d9cbcfe454aed0f2b83fcb11d60ec76f5d96f83d33d9e680fbdc92b
MD5 c93d93b04dcb1022bf61de84caef004d
BLAKE2b-256 eac3e89d288b927a6d8117af685b8ca7f65a48fab40e01ac045c5919e058ae52

See more details on using hashes here.

File details

Details for the file syncshell-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: syncshell-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.9.13 Darwin/21.5.0

File hashes

Hashes for syncshell-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f3f39aace97c2586b8fd14171cb12719e601af017ab358ef7eb517ca6ea5b39f
MD5 2985d9f909c0278f55e086b9aa3ee441
BLAKE2b-256 77c7aaaf8795f14d77af75c4926c4e872ef6a4ef711b815be47104f7cc753c7e

See more details on using hashes here.

Supported by

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