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
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