mirror of
https://github.com/Tarrasch/zsh-autoenv.git
synced 2024-11-14 05:00:58 +02:00
_autoenv_hash_pair: do not use a subshell (#81)
As a side-effect this should fix https://github.com/Tarrasch/zsh-autoenv/issues/39 in case it was still an issue after all.
This commit is contained in:
parent
84bb32a403
commit
51c7421f10
22
autoenv.zsh
22
autoenv.zsh
@ -172,6 +172,7 @@ _autoenv_hash_pair() {
|
|||||||
local env_file=${1:A}
|
local env_file=${1:A}
|
||||||
local cksum_version=${2:-2}
|
local cksum_version=${2:-2}
|
||||||
local env_cksum=${3:-}
|
local env_cksum=${3:-}
|
||||||
|
ret_pair=
|
||||||
if [[ -z $env_cksum ]]; then
|
if [[ -z $env_cksum ]]; then
|
||||||
if ! [[ -e $env_file ]]; then
|
if ! [[ -e $env_file ]]; then
|
||||||
echo "Missing file argument for _autoenv_hash_pair!" >&2
|
echo "Missing file argument for _autoenv_hash_pair!" >&2
|
||||||
@ -187,7 +188,7 @@ _autoenv_hash_pair() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
echo ":${env_file}:${env_cksum}:${cksum_version}"
|
ret_pair=":${env_file}:${env_cksum}:${cksum_version}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -201,14 +202,14 @@ _autoenv_authorized_pair() {
|
|||||||
|
|
||||||
_autoenv_authorized_env_file() {
|
_autoenv_authorized_env_file() {
|
||||||
local env_file=$1
|
local env_file=$1
|
||||||
local pair
|
local ret_pair
|
||||||
pair=$(_autoenv_hash_pair $env_file)
|
_autoenv_hash_pair $env_file
|
||||||
_autoenv_debug "v2 pair: ${pair}"
|
_autoenv_debug "v2 pair: ${ret_pair}"
|
||||||
if ! _autoenv_authorized_pair $pair; then
|
if ! _autoenv_authorized_pair $ret_pair; then
|
||||||
# Fallback for v1 (SHA-1) pairs
|
# Fallback for v1 (SHA-1) pairs
|
||||||
pair=$(_autoenv_hash_pair $env_file 1)
|
_autoenv_hash_pair $env_file 1
|
||||||
_autoenv_debug "v1 pair: ${pair}"
|
_autoenv_debug "v1 pair: ${ret_pair}"
|
||||||
if _autoenv_authorized_pair $pair; then
|
if _autoenv_authorized_pair $ret_pair; then
|
||||||
# Upgrade v1 entries to v2
|
# Upgrade v1 entries to v2
|
||||||
_autoenv_authorize $env_file
|
_autoenv_authorize $env_file
|
||||||
else
|
else
|
||||||
@ -221,7 +222,10 @@ _autoenv_authorize() {
|
|||||||
local env_file=${1:A}
|
local env_file=${1:A}
|
||||||
_autoenv_deauthorize $env_file
|
_autoenv_deauthorize $env_file
|
||||||
[[ -d ${AUTOENV_AUTH_FILE:h} ]] || mkdir -p ${AUTOENV_AUTH_FILE:h}
|
[[ -d ${AUTOENV_AUTH_FILE:h} ]] || mkdir -p ${AUTOENV_AUTH_FILE:h}
|
||||||
_autoenv_hash_pair $env_file >>| $AUTOENV_AUTH_FILE
|
{
|
||||||
|
local ret_pair
|
||||||
|
_autoenv_hash_pair $env_file && echo "$ret_pair"
|
||||||
|
} >>| $AUTOENV_AUTH_FILE
|
||||||
}
|
}
|
||||||
|
|
||||||
# Deauthorize a given filename, by removing it from the auth file.
|
# Deauthorize a given filename, by removing it from the auth file.
|
||||||
|
@ -26,7 +26,10 @@ fi
|
|||||||
# Add file ($1), version ($2), and optional hash ($3) to authentication file.
|
# Add file ($1), version ($2), and optional hash ($3) to authentication file.
|
||||||
test_autoenv_add_to_env() {
|
test_autoenv_add_to_env() {
|
||||||
[[ -d ${AUTOENV_AUTH_FILE:h} ]] || mkdir -p ${AUTOENV_AUTH_FILE:h}
|
[[ -d ${AUTOENV_AUTH_FILE:h} ]] || mkdir -p ${AUTOENV_AUTH_FILE:h}
|
||||||
_autoenv_hash_pair $1 1 ${2:-} >>| $AUTOENV_AUTH_FILE
|
{
|
||||||
|
local ret_pair
|
||||||
|
_autoenv_hash_pair $1 1 ${2:-} && echo $ret_pair
|
||||||
|
} >>| $AUTOENV_AUTH_FILE
|
||||||
}
|
}
|
||||||
|
|
||||||
# Add enter and leave env files to authentication file.
|
# Add enter and leave env files to authentication file.
|
||||||
|
Loading…
Reference in New Issue
Block a user