From cce9a3f6b2ecf0fa28f4d35f02c9af9d82b16185 Mon Sep 17 00:00:00 2001 From: Erik Arvstedt Date: Sun, 15 Aug 2021 11:28:45 +0200 Subject: [PATCH] modules: move nix-bitcoin options to file 'nix-bitcoin.nix' This allows modules.nix to consist only of a list of modules. --- examples/minimal-configuration.nix | 2 +- modules/modules.nix | 56 +--------------------------- modules/nix-bitcoin.nix | 59 +++++++++++++++++++++++++++--- 3 files changed, 55 insertions(+), 62 deletions(-) diff --git a/examples/minimal-configuration.nix b/examples/minimal-configuration.nix index 4cc6fac..71dd4a5 100644 --- a/examples/minimal-configuration.nix +++ b/examples/minimal-configuration.nix @@ -1,6 +1,6 @@ { config, pkgs, lib, ... }: { imports = [ - + ]; nix-bitcoin.generateSecrets = true; diff --git a/modules/modules.nix b/modules/modules.nix index c32bdf0..ce5de0e 100644 --- a/modules/modules.nix +++ b/modules/modules.nix @@ -1,9 +1,7 @@ -{ config, pkgs, lib, ... }: - -with lib; { imports = [ # Core modules + ./nix-bitcoin.nix ./secrets/secrets.nix ./operator.nix @@ -36,56 +34,4 @@ with lib; ]; disabledModules = [ "services/networking/bitcoind.nix" ]; - - options = { - nix-bitcoin = { - pkgs = mkOption { - type = types.attrs; - default = (import ../pkgs { inherit pkgs; }).modulesPkgs; - }; - - lib = mkOption { - readOnly = true; - default = import ../pkgs/lib.nix lib pkgs; - }; - - torClientAddressWithPort = mkOption { - readOnly = true; - default = with config.services.tor.client.socksListenAddress; - "${addr}:${toString port}"; - }; - - # Torify binary that works with custom Tor SOCKS addresses - # Related issue: https://github.com/NixOS/nixpkgs/issues/94236 - torify = mkOption { - readOnly = true; - default = pkgs.writeScriptBin "torify" '' - ${pkgs.tor}/bin/torify \ - --address ${config.services.tor.client.socksListenAddress.addr} \ - "$@" - ''; - }; - - # A helper for using doas instead of sudo when doas is enabled - runAsUserCmd = mkOption { - readOnly = true; - default = if config.security.doas.enable - # TODO: Use absolute path until https://github.com/NixOS/nixpkgs/pull/133622 is available. - then "/run/wrappers/bin/doas -u" - else "sudo -u"; - }; - }; - }; - - config = { - assertions = [ - { assertion = (config.services.lnd.enable -> ( !config.services.clightning.enable || config.services.clightning.port != config.services.lnd.port)); - message = '' - LND and clightning can't both bind to lightning port 9735. Either - disable LND/clightning or change services.clightning.bindPort or - services.lnd.port to a port other than 9735. - ''; - } - ]; - }; } diff --git a/modules/nix-bitcoin.nix b/modules/nix-bitcoin.nix index a3f67eb..fc8696b 100644 --- a/modules/nix-bitcoin.nix +++ b/modules/nix-bitcoin.nix @@ -1,9 +1,56 @@ -# This file exists only for backwards compatibility +{ config, pkgs, lib, ... }: -{ lib, ... }: +with lib; { - imports = [ - ./presets/secure-node.nix - (lib.mkRemovedOptionModule [ "services" "nix-bitcoin" "enable" ] "Please directly import ./presets/secure-node.nix") - ]; + options = { + nix-bitcoin = { + pkgs = mkOption { + type = types.attrs; + default = (import ../pkgs { inherit pkgs; }).modulesPkgs; + }; + + lib = mkOption { + readOnly = true; + default = import ../pkgs/lib.nix lib pkgs; + }; + + torClientAddressWithPort = mkOption { + readOnly = true; + default = with config.services.tor.client.socksListenAddress; + "${addr}:${toString port}"; + }; + + # Torify binary that works with custom Tor SOCKS addresses + # Related issue: https://github.com/NixOS/nixpkgs/issues/94236 + torify = mkOption { + readOnly = true; + default = pkgs.writeScriptBin "torify" '' + ${pkgs.tor}/bin/torify \ + --address ${config.services.tor.client.socksListenAddress.addr} \ + "$@" + ''; + }; + + # A helper for using doas instead of sudo when doas is enabled + runAsUserCmd = mkOption { + readOnly = true; + default = if config.security.doas.enable + # TODO: Use absolute path until https://github.com/NixOS/nixpkgs/pull/133622 is available. + then "/run/wrappers/bin/doas -u" + else "sudo -u"; + }; + }; + }; + + config = { + assertions = [ + { assertion = (config.services.lnd.enable -> ( !config.services.clightning.enable || config.services.clightning.port != config.services.lnd.port)); + message = '' + LND and clightning can't both bind to lightning port 9735. Either + disable LND/clightning or change services.clightning.bindPort or + services.lnd.port to a port other than 9735. + ''; + } + ]; + }; }