Вы можете использовать nix-shell
s shellHook
для загрузки переменных среды из файла, получая их как код оболочки. Например:
stdenv.mkDerivation {
name = "my-shell";
shellHook = ''
# Mark variables which are modified or created for export.
set -a
source env.sh
# or to make it relative to the directory of this shell.nix file
# source ${toString ./env.sh}
set +a
'';
}
Вы можете переключиться с stdenv.mkDerivation
на mkShell
, если ваша оболочка также не является пакетом.