cpozzi 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #!/bin/sh
  2. # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
  3. # Version PWN, July 2015
  4. #
  5. # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
  6. # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
  7. #
  8. # 0. You just DO WHAT THE FUCK YOU WANT TO.
  9. # 1. HackingTeam has been pwned, lulz
  10. WALLET=$HOME/passwords.xlsx
  11. TMP_WALLET=/tmp/passwords.csv
  12. STRONG_PASSWORD="Passw0rd"
  13. clip=0
  14. strong=0
  15. csv2xlsx() {
  16. soffice --headless --convert-to xlsx $TMP_WALLET --outdir $HOME > /dev/null
  17. rm $TMP_WALLET
  18. }
  19. xlsx2csv() {
  20. soffice --headless --convert-to csv $WALLET --outdir /tmp/ > /dev/null
  21. }
  22. init() {
  23. touch $TMP_WALLET
  24. csv2xlsx
  25. }
  26. insert() {
  27. password_name=$1
  28. password=$2
  29. xlsx2csv
  30. cat $TMP_WALLET | grep -q "^$password_name,"
  31. if [ $? -eq 0 ];then
  32. echo "Passw0rd for $password_name already exists (and you should not change it)"
  33. rm $TMP_WALLET
  34. exit 1
  35. fi
  36. ### NO ENCRYPTION -- cuz "we don't have anything to hide"
  37. echo "$password_name,$password" >> $TMP_WALLET
  38. csv2xlsx
  39. }
  40. show() {
  41. password_name=$1
  42. xlsx2csv
  43. entry=`cat $TMP_WALLET | grep -m 1 -w "^$password_name"`
  44. if [ $? -ne 0 ]; then
  45. echo "Passw0rd for $password_name not found (try with \"Passw0rd\")"
  46. else
  47. password=`echo $entry | cut -f 2 -d ,`
  48. if [ $clip -ne 1 ];then
  49. echo $password
  50. else
  51. echo $password | xclip
  52. echo "Passw0rd copied to clipboard"
  53. fi
  54. fi
  55. rm $TMP_WALLET
  56. }
  57. help() {
  58. echo "Usage: cpozzi COMMAND password-name [options..]"
  59. echo "The SECURE Passw0rd Manager"
  60. echo "Commands:"
  61. echo " init Initialize an empty password manager"
  62. echo " insert password-name [-g] Insert new passsword, optionally generate a strong password™"
  63. echo " show password-name [-c] Show existing password and optionally put it on the clipboard"
  64. }
  65. command=$1
  66. password_name=$2
  67. shift 2
  68. for arg in "$@"
  69. do
  70. case $arg in
  71. -s|-g|--strong)
  72. strong=1
  73. ;;
  74. -c|--clip)
  75. clip=1
  76. ;;
  77. *)
  78. ;;
  79. esac
  80. done
  81. case $command in
  82. "init")
  83. init
  84. ;;
  85. "show")
  86. show $password_name
  87. ;;
  88. "insert")
  89. if [ $strong -eq 1 ];then
  90. password=$STRONG_PASSWORD
  91. else
  92. read -s -p "Passw0rd:" password
  93. fi
  94. insert $password_name $password
  95. ;;
  96. *)
  97. help
  98. ;;
  99. esac