nix-shell: как загрузить переменные среды из файла env? - PullRequest
2 голосов
/ 04 мая 2020

Связано с этим вопросом: nix-shell: как указать настраиваемую переменную среды?

При таком выводе:

stdenv.mkDerivation rec {
  FOO = "bar";
}

FOO будет доступно в оболочке nix как переменная среды, но можно ли загрузить переменные среды из файла env?

1 Ответ

2 голосов
/ 05 мая 2020

Вы можете использовать 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, если ваша оболочка также не является пакетом.

...