mirror of
https://github.com/nix-community/nix-direnv.git
synced 2025-11-08 19:46:11 +01:00
Fix nix_direnv_version to properly handle major version bumps
Closes #159
This commit is contained in:
parent
c44fd24a25
commit
804418f97f
1 changed files with 7 additions and 3 deletions
10
direnvrc
10
direnvrc
|
|
@ -44,6 +44,10 @@ nix_direnv_version() {
|
||||||
[[ $1 =~ ^([^+-.]*)(\.?)([^+-.]*)(\.?)([^+-]*)(-?)([^+]*)(\+?)(.*)$ ]]
|
[[ $1 =~ ^([^+-.]*)(\.?)([^+-.]*)(\.?)([^+-]*)(-?)([^+]*)(\+?)(.*)$ ]]
|
||||||
declare -a ver; ver=("${BASH_REMATCH[@]:1}")
|
declare -a ver; ver=("${BASH_REMATCH[@]:1}")
|
||||||
|
|
||||||
|
req_major=${ver[0]}
|
||||||
|
req_minor=${ver[2]:=0}
|
||||||
|
req_patch=${ver[4]:=0}
|
||||||
|
|
||||||
if [[ ( ${ver[0]} != +([0-9]) ) \
|
if [[ ( ${ver[0]} != +([0-9]) ) \
|
||||||
|| ( ${ver[1]} == '.' && ${ver[2]} != +([0-9]) ) \
|
|| ( ${ver[1]} == '.' && ${ver[2]} != +([0-9]) ) \
|
||||||
|| ( ${ver[3]} == '.' && ${ver[4]} != +([0-9]) ) \
|
|| ( ${ver[3]} == '.' && ${ver[4]} != +([0-9]) ) \
|
||||||
|
|
@ -55,9 +59,9 @@ nix_direnv_version() {
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ( ${ver[0]} -gt $major ) \
|
if [[ ($req_major -gt $major) \
|
||||||
|| ( ${ver[2]:=0} -gt $minor ) \
|
|| ($req_major -eq $major && $req_minor -gt $minor) \
|
||||||
|| ( ${ver[4]:=0} -gt $patch ) \
|
|| ($req_major -eq $major && $req_minor -eq $minor && $req_patch -gt $patch)
|
||||||
]]; then
|
]]; then
|
||||||
printf '%s\n' "nix-direnv: error current version v$major.$minor.$patch is older than the desired version v$1" >&2
|
printf '%s\n' "nix-direnv: error current version v$major.$minor.$patch is older than the desired version v$1" >&2
|
||||||
return 1
|
return 1
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue