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