#!/bin/sh set -e rage_dir=~/.rage . ${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 ;; re) F="" if [ -f $2 ]; then F=$2 else F=$(list | grep $2) fi echo "Re-encrypting: '${F}'" pass="$(age -i $identity -d "${F}")" echo "$pass" | age -a -R "${recipients}" > "${F}" ;; en) printf 'Password: ' stty -echo read pass stty echo echo "" printf 'Location: ' read loc echo "" mkdir -p "$(dirname ~/.rage/${loc})" echo "$pass" | age -a -R "${recipients}" > ~/.rage/${loc}.age ;; de) if [ -f $2 ]; then age -i $identity -d $2 else F=$(list | grep $2) age -i $identity -d "${F}" fi ;; otp) if [ -f $2 ]; then age -i $identity -d $2 | oathtool -b --totp - else F=$(list | grep $2) age -i $identity -d "${F}" | oathtool -b --totp - fi ;; push) cd $rage_dir git push ;; sync) cd $rage_dir git sync ;; default) list esac