search and store command lines and synchronize with dropbox!
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.idea
spellbooker
.gitignore
LICENSE
README.rst
setup.py

README.rst

spellbook

search and store command lines and synchronize with dropbox!

Wpis na blogu / Blog post:

http://donpiekarz.pepiniera.net/2016/02/11/spellbook/?o=gh

PyPi:

https://pypi.python.org/pypi/spellbook

problem

http://imgs.xkcd.com/comics/tar.png

The inspiration is user experience in opennssl command line tool. In one of my previous project I was working with openssl command line tool. In the examples below I will use openssl to show you how to use spellbook.

the quickest start

install spellbook:

$ pip install spellbook

create first spellbook, called aux:

$ spellbook aux create

add spell to your spellbook:

$ spellbook aux add "tar -xvzf file.tar.gz" "extract tar.gz archive"

search for it:

$ spellbook aux search tar
tar -xvzf file.tar.gz

connect to DropBox:

$ spellbook - connectdb

synchronize all spellbooks with Dropbox:

$ spellbook - sync

documentation

The idea is to create 'book' for openssl.

create your first spellbook, called openssl:

$ spellbook openssl create

then create spellbook for linux:

$ spellbook linux create

add

add some data to it, three ways are possible:

format:

$ spellbook <book_name> add [command [description]]

add with command and description:

$ spellbook openssl add "openssl rand 16 -hex" "generate random 16 bytes and encode as hex"
openssl rand 16 -hex::generate random 16 bytes and encode as hex

add with only command:

$ spellbook openssl add "openssl asn1parse -in 3msg.enc.der -inform der"
provide description>> show asn1 encoded file
openssl asn1parse -in 3msg.enc.der -inform der::show asn1 encoded file

add without command:

$ spellbook openssl add
provide command>> openssl des3 -d -in 3msg.enc.msg -K `xxd -p 3msg.dec.key` -iv `xxd -p 3msg.iv`
provide description>> decode file using des3 with key and iv
openssl des3 -d -in 3msg.enc.msg -K `xxd -p 3msg.dec.key` -iv `xxd -p 3msg.iv`::decode file using des3 with key and iv

add something to linux book:

$ spellbook linux add "tar -xvzf file.tar.gz" "extract tar.gz archive"
tar -xvzf file.tar.gz::extract tar.gz archive

search

search in book openssl:

$ spellbook openssl search rand
openssl rand 16 -hex

or in all books ( - means all ):

$ spellbook - search extract
tar -xvzf file.tar.gz

search any word:

$ spellbook - search openssl d
openssl rand 16 -hex
openssl asn1parse -in 3msg.enc.der -inform der
openssl des3 -d -in 3msg.enc.msg -K `xxd -p 3msg.dec.key` -iv `xxd -p 3msg.iv`

or full pharse:

$ spellbook - search "openssl d"
openssl des3 -d -in 3msg.enc.msg -K `xxd -p 3msg.dec.key` -iv `xxd -p 3msg.iv`

list

list all spells:

$ spellbook openssl list
openssl rand 16 -hex    ::>>    generate random 16 bytes and encode as hex
openssl asn1parse -in 3msg.enc.der -inform der  ::>>    show asn1 encoded file
openssl des3 -d -in 3msg.enc.msg -K `xxd -p 3msg.dec.key` -iv `xxd -p 3msg.iv`  ::>>    decode file using des3 with key and iv

dropbox support

just install dropbox or install spellbook with dropbox

$ pip install spellbook[with_dropbox]
or
$ pip install spellbook dropbox

connect to dropbox

$ spellbook - connectdb
1. Go to: https://www.dropbox.com/1/oauth2/authorize?response_type=code&client_id=ow3gosk8pb9bhkr
2. Click "Allow" (you might have to log in first)
3. Copy the authorization code.
provide the authorization code here>> oh4dTc9F_fgAAAAAAAAC3fovgKZ7cPL65nS5Ajxeaer
successfully linked account:  DonPiekarz

sync spellbooks with dropbox

all spellbooks will be synchronized with yours dropbox account

$ spellbook - sync

future work

  • some hack to end parse arguments
  • refactoring