{ config, lib, pkgs, inputs, ... }: let cfg = config.homelab.common.substituters; in { options.homelab.common.substituters = { enable = lib.mkEnableOption "Binary cache substituters"; domain = lib.mkOption { type = lib.types.str; default = inputs.self.nixosConfigurations.BinaryCache.config.homelab.services.attic.domain; description = "The domain name of the binary cache."; }; publicKey = lib.mkOption { type = lib.types.nullOr lib.types.str; default = null; description = "The public key of the Attic cache (e.g., 'homelab:...')"; }; }; config = lib.mkIf cfg.enable { nix.settings = { substituters = [ "https://${cfg.domain}" ]; trusted-public-keys = lib.optional (cfg.publicKey != null) cfg.publicKey; }; }; }