/spellbook

search and store command lines

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

spellbook

search and store command lines

Wpis na blogu / Blog post:

http://donpiekarz.pepiniera.net/2016/02/11/spellbook/

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

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