1
0
Fork 0
forked from encrypt/cpozzi
cpozzi/cpozzi
2015-07-08 17:30:52 +02:00

102 lines
1.9 KiB
Bash
Executable file

#!/bin/sh
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