rofi-pass/addpass

57 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
source $HOME/.config/rofi-pass/config
if [[ -n "$3" && "$2" == "--root" ]]; then
root="${2}"
elif [[ -n $root ]]; then
root=$root
elif [[ -n $PASSWORD_STORE_DIR ]]; then
root=$PASSWORD_STORE_DIR
else
root="$HOME/.password-store"
fi
if [[ $1 == "--help" || $1 == "-h" ]]; then
echo "add pass files for rofi-pass"
echo "(C) 2015 Rasmus Steinke <rasi at xssn dot at>"
echo ""
echo "--name \"foobar\" Mandatory first argument - filename of password file"
echo "--root \"foobar\" Optional second argument - Absolute path to password store"
echo ""
echo "+FIELD \"barbaz\" Every field name has to start with \"+\""
echo " Values should be quoted"
echo ""
echo "Example:"
echo "addpass --name \"my password file\" --root \"$HOME/passwords\" +user \"Richard\" +foo \"bar\" +autotype \"foo :tab user :tab pass\""
exit
else
echo "$1"
if [[ $1 != "--name" ]]; then
echo "Missing --name option. Try --help"
exit
elif [[ $1 == "--name" ]]; then
Name="$2"
fi
fi
echo "Using database \"$root\""
OIFS=$IFS;
IFS="+";
fields="$@";
fieldsArray=($fields);
pass="$(pwgen -sy 32 1)"
printEntry () {
echo -e "$pass\n---"
for ((i=1; i<${#fieldsArray[@]}; ++i)); do
field=$(echo "${fieldsArray[$i]}" | awk -F' ' '{print $1}')
option=$(echo "${fieldsArray[$i]}" | cut -d ' ' -f 2- | sed -e 's/[[:blank:]]\+$//')
echo "$field: $option" | grep -Ev 'name:|--root|root:|^:' #${fieldsArray[$i]}";
done
}
printEntry | PASSWORD_STORE_DIR="${root}" pass insert -m "${Name}"