123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- #!/bin/sh
- # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- # Version PWN, July 2015
- #
- # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- #
- # 0. You just DO WHAT THE FUCK YOU WANT TO.
- # 1. HackingTeam has been pwned, lulz
- WALLET=$HOME/passwords.xlsx
- TMP_WALLET=/tmp/passwords.csv
- STRONG_PASSWORD="Passw0rd"
- clip=0
- strong=0
- csv2xlsx() {
- soffice --headless --convert-to xlsx $TMP_WALLET --outdir $HOME > /dev/null
- rm $TMP_WALLET
- }
- xlsx2csv() {
- soffice --headless --convert-to csv $WALLET --outdir /tmp/ > /dev/null
- }
- init() {
- touch $TMP_WALLET
- csv2xlsx
- }
- insert() {
- password_name=$1
- password=$2
- xlsx2csv
- cat $TMP_WALLET | grep -q "^$password_name,"
- if [ $? -eq 0 ];then
- echo "Passw0rd for $password_name already exists (and you should not change it)"
- rm $TMP_WALLET
- exit 1
- fi
- ### NO ENCRYPTION -- cuz "we don't have anything to hide"
- echo "$password_name,$password" >> $TMP_WALLET
- csv2xlsx
- }
- show() {
- password_name=$1
- xlsx2csv
- entry=`cat $TMP_WALLET | grep -m 1 -w "^$password_name"`
- if [ $? -ne 0 ]; then
- echo "Passw0rd for $password_name not found (try with \"Passw0rd\")"
- else
- password=`echo $entry | cut -f 2 -d ,`
- if [ $clip -ne 1 ];then
- echo $password
- else
- echo $password | xclip
- echo "Passw0rd copied to clipboard"
- fi
-
- fi
- rm $TMP_WALLET
- }
- help() {
- echo "Usage: cpozzi COMMAND password-name [options..]"
- echo "The SECURE Passw0rd Manager"
- echo "Commands:"
- echo " init Initialize an empty password manager"
- echo " insert password-name [-g] Insert new passsword, optionally generate a strong password™"
- echo " show password-name [-c] Show existing password and optionally put it on the clipboard"
- }
- command=$1
- password_name=$2
- shift 2
- for arg in "$@"
- do
- case $arg in
- -s|-g|--strong)
- strong=1
- ;;
- -c|--clip)
- clip=1
- ;;
- *)
- ;;
- esac
- done
- case $command in
- "init")
- init
- ;;
- "show")
- show $password_name
- ;;
- "insert")
- if [ $strong -eq 1 ];then
- password=$STRONG_PASSWORD
- else
- read -s -p "Passw0rd:" password
- fi
- insert $password_name $password
- ;;
- *)
- help
- ;;
- esac
|