mirror of
https://github.com/nix-community/nix-direnv.git
synced 2025-12-16 14:01:14 +01:00
create a function for all pre-flight checks
This commit is contained in:
parent
fef7340826
commit
7133709885
1 changed files with 35 additions and 4 deletions
39
direnvrc
39
direnvrc
|
|
@ -2,11 +2,38 @@
|
||||||
|
|
||||||
REQUIRED_DIRENV_VERSION="2.21.3"
|
REQUIRED_DIRENV_VERSION="2.21.3"
|
||||||
|
|
||||||
|
_nix_direnv_preflight () {
|
||||||
|
if [[ -z "$direnv" ]]; then
|
||||||
|
printf '%s\n' "\$direnv environment variable was not defined. Was this script run inside direnv?"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if ! has direnv_version || ! direnv_version "$REQUIRED_DIRENV_VERSION" 2>/dev/null; then
|
|
||||||
printf '%s\n' "nix-direnv: base direnv version is older than the required v$REQUIRED_DIRENV_VERSION." >&2
|
if [[ -z ${NIX_BIN_PREFIX:-} ]]; then
|
||||||
exit 1
|
NIX_BIN_PREFIX=$(command -v nix-shell)
|
||||||
fi
|
NIX_BIN_PREFIX="${NIX_BIN_PREFIX%/*}/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if ! has direnv_version || ! direnv_version "$REQUIRED_DIRENV_VERSION" 2>/dev/null; then
|
||||||
|
log_status "nix-direnv: base direnv version is older than the required v$REQUIRED_DIRENV_VERSION."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! "${NIX_BIN_PREFIX}nix-shell" --extra-experimental-features '' --version 2>/dev/null >&2; then
|
||||||
|
log_status "nix-direnv: nix version is older than the required 2.4."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local layout_dir
|
||||||
|
layout_dir=$(direnv_layout_dir)
|
||||||
|
|
||||||
|
if [[ ! -d "$layout_dir" ]]; then
|
||||||
|
mkdir -p "$layout_dir"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
# Usage: nix_direnv_version <version_at_least>
|
# Usage: nix_direnv_version <version_at_least>
|
||||||
#
|
#
|
||||||
|
|
@ -117,6 +144,8 @@ nix_direnv_watch_file() {
|
||||||
}
|
}
|
||||||
|
|
||||||
use_flake() {
|
use_flake() {
|
||||||
|
_nix_direnv_preflight
|
||||||
|
|
||||||
flake_expr="${1:-.}"
|
flake_expr="${1:-.}"
|
||||||
flake_dir="${flake_expr%#*}"
|
flake_dir="${flake_expr%#*}"
|
||||||
|
|
||||||
|
|
@ -225,6 +254,8 @@ _nix_extract_direnv() {
|
||||||
|
|
||||||
use_nix() {
|
use_nix() {
|
||||||
local path layout_dir
|
local path layout_dir
|
||||||
|
_nix_direnv_preflight
|
||||||
|
|
||||||
path=$("${NIX_BIN_PREFIX}nix-instantiate" --find-file nixpkgs)
|
path=$("${NIX_BIN_PREFIX}nix-instantiate" --find-file nixpkgs)
|
||||||
layout_dir=$(direnv_layout_dir)
|
layout_dir=$(direnv_layout_dir)
|
||||||
local experimental_flags=()
|
local experimental_flags=()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue