[pass] [PATCH] Add move option
Brian Mattern
rephorm at rephorm.com
Mon Apr 15 22:37:28 CEST 2013
Is there a reason you don't use git mv?
Brian
On Mon, 15 Apr 2013, Laurent Navet wrote:
> Allow to move and rearrange branches in password tree
>
> Signed-off-by: Laurent Navet <laurent.navet at gmail.com>
> ---
> src/password-store.sh | 43 ++++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 42 insertions(+), 1 deletion(-)
>
> diff --git a/src/password-store.sh b/src/password-store.sh
> index 99010e9..2cad6a4 100755
> --- a/src/password-store.sh
> +++ b/src/password-store.sh
> @@ -42,6 +42,8 @@ Usage:
> Insert new password. Optionally, the console can be enabled echo
> the password back. Or, optionally, it may be multiline. Prompt
> before overwriting existing password unless forced.
> + $program move [--force,-f] old-pass-name new-pass-name
> + Allow to move and rearrange branches
> $program edit pass-name
> Insert a new password or edit an existing password using ${EDITOR:-vi}.
> $program generate [--no-symbols,-n] [--clip,-c] [--force,-f] pass-name pass-length
> @@ -63,7 +65,7 @@ _EOF
> }
> is_command() {
> case "$1" in
> - init|ls|list|show|insert|edit|generate|remove|rm|delete|git|help|--help|version|--version) return 0 ;;
> + init|ls|list|show|insert|move|edit|generate|remove|rm|delete|git|help|--help|version|--version) return 0 ;;
> *) return 1 ;;
> esac
> }
> @@ -278,6 +280,45 @@ case "$command" in
> fi
> git_add_file "$passfile" "Added given password for $path to store."
> ;;
> + move)
> + force=0
> + opts="$($GETOPT -o f -l force -n "$program" -- "$@")"
> + err=$?
> + eval set -- "$opts"
> + while true; do case $1 in
> + -f|--force) force=1; shift ;;
> + --) shift; break ;;
> + esac done
> +
> + if [[ $# -ne 2 ]]; then
> + echo "Usage: $program $command [--force,-f] old-pass-name new-pass-name"
> + exit 1
> + fi
> +
> + oldpath="$1"
> + newpath="$2"
> + oldpassfile="$PREFIX/${oldpath%/}"
> + newpassfile="$PREFIX/${newpath%/}"
> +
> + if [[ ! -d $oldpassfile ]]; then
> + oldpassfile="$PREFIX/$oldpath.gpg"
> + if [[ ! -f $oldpassfile ]]; then
> + echo "$oldpath is not in the password store."
> + exit 1
> + else
> + newpassfile="$PREFIX/$newpath.gpg"
> + fi
> + fi
> +
> + [[ $force -eq 1 ]] || yesno "Are you sure you would like to move $oldpath to $newpath ?"
> +
> + mv -f -v $oldpassfile $newpassfile
> + if [[ -d $GIT_DIR && -e $newpassfile ]]; then
> + git rm -qr "$oldpassfile"
> + git_add_file "$newpassfile" "Moved $oldpassfile to $newpassfile."
> + git commit -m "Moved $oldpath to $newpath."
> + fi
> + ;;
> edit)
> if [[ $# -ne 1 ]]; then
> echo "Usage: $program $command pass-name"
> --
> 1.7.10.4
>
> _______________________________________________
> Password-Store mailing list
> Password-Store at lists.zx2c4.com
> http://lists.zx2c4.com/listinfo.cgi/password-store-zx2c4.com
More information about the Password-Store
mailing list