55 lines
875 B
Bash
Executable File
55 lines
875 B
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
rage_dir=~/.rage
|
|
rage_id_file="$(awk -F= '/^identity/{print $NF}' ${rage_dir}/config)"
|
|
rage_id_recip="$(awk -F= '/^identity/{print $NF ".pub"}' ${rage_dir}/config)"
|
|
|
|
cmd=$1
|
|
|
|
list() {
|
|
find $rage_dir -type f -name \*.age
|
|
}
|
|
|
|
if [ -z ${cmd} ]; then
|
|
list
|
|
exit
|
|
fi
|
|
|
|
case $cmd in
|
|
ls)
|
|
list
|
|
;;
|
|
en)
|
|
printf 'Password: '
|
|
stty -echo
|
|
read pass
|
|
stty echo
|
|
echo ""
|
|
printf 'Location: '
|
|
read loc
|
|
echo ""
|
|
mkdir -p "$(dirname ~/.rage/${loc})"
|
|
echo "$pass" | age -r "$(cat ${rage_id_file}.pub)" > ~/.rage/${loc}.age
|
|
;;
|
|
de)
|
|
if [ -f $2 ]; then
|
|
age -i $rage_id_file -d $2
|
|
else
|
|
F=$(list | grep $2)
|
|
age -i $rage_id_file -d "${F}"
|
|
fi
|
|
;;
|
|
otp)
|
|
if [ -f $2 ]; then
|
|
age -i $rage_id_file -d $2 | oathtool -b --totp -
|
|
else
|
|
F=$(list | grep $2)
|
|
age -i $rage_id_file -d "${F}" | oathtool -b --totp -
|
|
fi
|
|
;;
|
|
default)
|
|
list
|
|
esac
|