Устанавливайте параметр конфигурации NixOS только тогда, когда он действителен, для обратной совместимости

Вы можете попробовать это

awk -vStartDate=`date -d'now-30 min' +%H:%M:%S` '{ if ($2 > StartDate) print $0}' web.log
2
01.03.2020, 00:26
1 ответ

Функция конфигурации получает атрибут options, поэтому можно проверить, определена ли данная опция с помощью builtins.hasAttr, прежде чем устанавливать ее в конфигурации.

Большинство конфигураций NixOS не извлекают options, поэтому вам может потребоваться сначала добавить его. Например:

{ config, pkgs, options,... }:
{
  programs.gnupg.agent =
    { enable = true;  } //
    # False on NixOS 19.09
    (if builtins.hasAttr "pinentryFlavor" options.programs.gnupg.agent
     then { pinentryFlavor = "gtk2"; }
     else {});
}

Точно так же тот же подход можно использовать для установки параметров, используемых nixos-rebuild build-vm, которые обычно недоступны.

Вместо необходимости устанавливать параметры через переменные среды при запуске виртуальной машины, например

QEMU_OPTS='-m 4096 -smp 4 -soundhw ac97'./result/bin/run-*-vm

эквивалентные параметры можно установить в файле configuration.nix:

  # The default 384MB RAM is not enough to run Firefox in a VM
  virtualisation =
    lib.optionalAttrs (builtins.hasAttr "qemu" options.virtualisation) {
      memorySize = 4096;
      cores = 4;
      qemu.options = [ "-soundhw ac97" ];
    };
3
28.04.2021, 23:21

Теги

Похожие вопросы