myservice
Я написал службу nixos в myservice.nix
и включил ее в /etc/nixos/configuration.nix
с помощью:
imports [ /path/to/myservice.nix ];
а позже я использую его внутри configuration.nix
:
services.myservice.enable = true;
вопрос
в одном сценарии я не могу использовать nixos-rebuild switch
, но поскольку ввод nix
связан с options system
с использованием foo = mkOption { type = types.int; ...}
, я вынужден использовать options systems
, хотя я просто хочу вычислить файл конфигурации для nginx
с помощью nix.
как оценить только этот nginx.conf?
@aszlig написал мне эту команду:
nix-instantiate --eval --strict -E '(import <nixpkgs/nixos> { configuration = { imports = [ nixcloud-reverse-proxy/nixcloud-reverse-proxy.nix ]; services.nixcloud-reverse-proxy.enable = true; }; }).config.system.build.configsFromPath'
исполнение приводит к
nix-instantiate --eval --strict -E '(import <nixpkgs/nixos> { configuration = { imports = [ ./nixcloud-reverse-proxy.nix ]; services.nixcloud-reverse-proxy.enable = true; }; }).config.system.build.configsFromPath'
error: attribute ‘configsFromPath’ missing, at (string):1:1
(use ‘--show-trace’ to show detailed location information)
Обновить
nix-build '<nixpkgs/nixos>' -A config.systemd.services.nixcloud-reverse-proxy.runner -I nixos-config=./configuration.nix
...
/nix/store/lp2jbb1wahhlr7qkq81rmfvk84mjk1vk-nixcloud-reverse-proxy-runner
теперь я могу использовать это для grep файла conf:
cat /nix/store/lp2jbb1wahhlr7qkq81rmfvk84mjk1vk-nixcloud-reverse-proxy-runner | grep -o ' /nix/store/.*nginx-reverse-proxy.conf'
... своего рода обходной путь, но не очень точный! я бы предпочел файл конфигурации в каталоге.