All Projects → msudgh → syncshell

msudgh / syncshell

Licence: MIT License
keep your machine's shell history synchronize

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to syncshell

Syncsettings
Sync Settings - The cross-platform solution to keep Sublime Text configuration synchronized
Stars: ✭ 240 (+389.8%)
Mutual labels:  gist, synchronization
syncs
Concurrency and synchronization primitives
Stars: ✭ 81 (+65.31%)
Mutual labels:  synchronization
dotfiles
dotfiles of my linux setup
Stars: ✭ 25 (-48.98%)
Mutual labels:  zsh
zhooks
Display Zsh hook functions and arrays
Stars: ✭ 36 (-26.53%)
Mutual labels:  zsh
dotfiles
Config files for i3, polybar, rofi, mpv, Xresources, kitty and some bash-things...
Stars: ✭ 52 (+6.12%)
Mutual labels:  zsh
dotfiles
Dotfiles for my awesomewm/i3 Arch setup & neovim
Stars: ✭ 19 (-61.22%)
Mutual labels:  zsh
zsh unplugged
🤔 perhaps you don't need a Zsh plugin manager after all...
Stars: ✭ 68 (+38.78%)
Mutual labels:  zsh
Alpharized
Super simple oh-my-zsh theme optimized to work with solarized dark
Stars: ✭ 12 (-75.51%)
Mutual labels:  zsh
slimline
Minimal, customizable, fast and elegant ZSH prompt
Stars: ✭ 48 (-2.04%)
Mutual labels:  zsh
aphrodite-terminal-theme
🎀 Minimalistic Aphrodite theme for sexy terminals
Stars: ✭ 64 (+30.61%)
Mutual labels:  zsh
nord-mintty
An arctic, north-bluish clean and elegant Mintty color theme.
Stars: ✭ 40 (-18.37%)
Mutual labels:  zsh
dotfiles
Your dotfiles are how you personalize your system. These are mine.
Stars: ✭ 12 (-75.51%)
Mutual labels:  zsh
dotfiles
Dotfiles for my current dev environment.
Stars: ✭ 14 (-71.43%)
Mutual labels:  zsh
dotfiles
My dotfiles for development
Stars: ✭ 68 (+38.78%)
Mutual labels:  zsh
dotfiles
🏠 dotfiles for my macOS environment
Stars: ✭ 17 (-65.31%)
Mutual labels:  zsh
ZConfer
The ultimate ZSH configuration utility.
Stars: ✭ 26 (-46.94%)
Mutual labels:  zsh
movie-box
📺 Get your last watched movies and shows (+more) report from trakt.tv in a GitHub Gist.
Stars: ✭ 13 (-73.47%)
Mutual labels:  gist
cdc
☣️ Shell plugin for zsh/bash that allows you to cd to subdirectories of user-defined directories from anywhere, without editing CDPATH.
Stars: ✭ 17 (-65.31%)
Mutual labels:  zsh
apollo-zsh-theme
Heavily customizable, compatible, and fast ZSH theme framework.
Stars: ✭ 64 (+30.61%)
Mutual labels:  zsh
FISCO-BCOS
FISCO BCOS是由微众牵头的金链盟主导研发、对外开源、安全可控的企业级金融区块链底层技术平台。 单链配置下,性能TPS可达万级。提供群组架构、并行计算、分布式存储、可插拔的共识机制、隐私保护算法、支持全链路国密算法等诸多特性。 经过多个机构、多个应用,长时间在生产环境中的实践检验,具备金融级的高性能、高可用性及高安全性。FISCO BCOS is a secure and reliable financial-grade open-source blockchain platform. The platform provides rich features including group architecture, cross-chain communication protoc…
Stars: ✭ 1,603 (+3171.43%)
Mutual labels:  synchronization

SyncShell

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


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:        Syncshell
String form: <syncshell.syncshell.Syncshell object at 0x7fa35d7d87f0>

Usage:       syncshell 
             syncshell auth
             syncshell download
             syncshell upload

How it Works

The actual idea of SyncShell is synchronization of your devices shell history, Almost, this ability will be useful when you want to sync your office and home machines. SyncShell is just built on Github Gist feature such that this CLI tool represents three methods to communicate with the tool.

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

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 😉

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 bash and other shells

Contributing

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

  • Creating new features
  • Fixing bugs
  • Write test cases

Installing dependencies

By the following command install syncshell dependencies

$ python install -r requirements.txt

Tests

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

$ pytest -c pytest.ini -s

Done 😉

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].