home: direnv: add 'nix' library file
This commit is contained in:
parent
d118351849
commit
b9361dada4
31
home/direnv/lib/nix.sh
Normal file
31
home/direnv/lib/nix.sh
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#shellcheck shell=bash
|
||||||
|
|
||||||
|
use_pkgs() {
|
||||||
|
if ! has nix; then
|
||||||
|
# shellcheck disable=2016
|
||||||
|
log_error 'use_pkgs: `nix` is not in PATH'
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local DEFAULT_FLAKE="pkgs"
|
||||||
|
|
||||||
|
# Allow changing the default flake through a command line switch
|
||||||
|
if [ "$1" = "-f" ] || [ "$1" = "--flake" ]; then
|
||||||
|
DEFAULT_FLAKE="$2"
|
||||||
|
shift 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Allow specifying a full installable, or just a package name and use the default flake
|
||||||
|
local packages=()
|
||||||
|
for pkg; do
|
||||||
|
if [[ $pkg =~ .*#.* ]]; then
|
||||||
|
packages+=("$pkg")
|
||||||
|
else
|
||||||
|
packages+=("$DEFAULT_FLAKE#$pkg")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# shellcheck disable=2154
|
||||||
|
direnv_load nix shell "${packages[@]}" --command "$direnv" dump
|
||||||
|
}
|
Loading…
Reference in a new issue