diff options
author | Kevin Lyda <kevin@ie.suberic.net> | 2017-02-15 15:18:40 +0000 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2017-02-25 13:55:09 +0100 |
commit | 2266c8e6cde59207f7b6ecf0985829b8823f1b63 (patch) | |
tree | 36887df7600f00a6c130c8f2f3f3f9eb67ede89a /src | |
parent | 250207d21474fb8e6e86fc47722ce516ba81b74f (diff) | |
download | pass-2266c8e6cde59207f7b6ecf0985829b8823f1b63.tar.gz pass-2266c8e6cde59207f7b6ecf0985829b8823f1b63.tar.bz2 pass-2266c8e6cde59207f7b6ecf0985829b8823f1b63.zip |
Support git worktree.
Git worktree works with the normal .git directory instead being a
.git file with a reference to the primary git repository.
Diffstat (limited to '')
-rwxr-xr-x | src/password-store.sh | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/password-store.sh b/src/password-store.sh index e8948a1..ce140db 100755 --- a/src/password-store.sh +++ b/src/password-store.sh @@ -28,14 +28,14 @@ export GIT_WORK_TREE="${PASSWORD_STORE_GIT:-$PREFIX}" # git_add_file() { - [[ -d $GIT_DIR ]] || return + [[ -e $GIT_DIR ]] || return git add "$1" || return [[ -n $(git status --porcelain "$1") ]] || return git_commit "$2" } git_commit() { local sign="" - [[ -d $GIT_DIR ]] || return + [[ -e $GIT_DIR ]] || return [[ $(git config --bool --get pass.signcommits) == "true" ]] && sign="-S" git commit $sign -m "$1" } @@ -310,7 +310,7 @@ cmd_init() { if [[ $# -eq 1 && -z $1 ]]; then [[ ! -f "$gpg_id" ]] && die "Error: $gpg_id does not exist and so cannot be removed." rm -v -f "$gpg_id" || exit 1 - if [[ -d $GIT_DIR ]]; then + if [[ -e $GIT_DIR ]]; then git rm -qr "$gpg_id" git_commit "Deinitialize ${gpg_id}${id_path:+ ($id_path)}." fi @@ -551,7 +551,7 @@ cmd_delete() { [[ $force -eq 1 ]] || yesno "Are you sure you would like to delete $path?" rm $recursive -f -v "$passfile" - if [[ -d $GIT_DIR && ! -e $passfile ]]; then + if [[ -e $GIT_DIR && ! -e $passfile ]]; then git rm -qr "$passfile" git_commit "Remove $path from store." fi @@ -592,7 +592,7 @@ cmd_copy_move() { mv $interactive -v "$old_path" "$new_path" || exit 1 [[ -e "$new_path" ]] && reencrypt_path "$new_path" - if [[ -d $GIT_DIR && ! -e $old_path ]]; then + if [[ -e $GIT_DIR && ! -e $old_path ]]; then git rm -qr "$old_path" git_add_file "$new_path" "Rename ${1} to ${2}." fi @@ -613,7 +613,7 @@ cmd_git() { git_add_file .gitattributes "Configure git repository for gpg file diff." git config --local diff.gpg.binary true git config --local diff.gpg.textconv "$GPG -d ${GPG_OPTS[*]}" - elif [[ -d $GIT_DIR ]]; then + elif [[ -e $GIT_DIR ]]; then tmpdir nowarn #Defines $SECURE_TMPDIR. We don't warn, because at most, this only copies encrypted files. export TMPDIR="$SECURE_TMPDIR" git "$@" |