diff --git a/flake.nix b/flake.nix index f658948b2..c1b1bcb17 100644 --- a/flake.nix +++ b/flake.nix @@ -1,45 +1,50 @@ { description = "Unified hosts file with base extensions."; - inputs.flake-utils.url = "github:numtide/flake-utils"; - outputs = { self, nixpkgs, flake-utils }: { - nixosModule = { config, ... }: - with nixpkgs.lib; - let - cfg = config.networking.stevenBlackHosts; - alternatesList = (if cfg.blockFakenews then [ "fakenews" ] else []) ++ - (if cfg.blockGambling then [ "gambling" ] else []) ++ - (if cfg.blockPorn then [ "porn" ] else []) ++ - (if cfg.blockSocial then [ "social" ] else []); - alternatesPath = "alternates/" + builtins.concatStringsSep "-" alternatesList + "/"; - in - { - options.networking.stevenBlackHosts = { - enable = mkEnableOption "Use Steven Black's hosts file as extra hosts."; - blockFakenews = mkEnableOption "Additionally block fakenews hosts."; - blockGambling = mkEnableOption "Additionally block gambling hosts."; - blockPorn = mkEnableOption "Additionally block porn hosts."; - blockSocial = mkEnableOption "Additionally block social hosts."; + outputs = { self, nixpkgs, ... }@inputs: + let + forAllSystems = nixpkgs.lib.genAttrs nixpkgs.lib.platforms.unix; + + nixpkgsFor = forAllSystems (system: import nixpkgs { + inherit system; + }); + in + { + nixosModule = { config, ... }: + with nixpkgs.lib; + let + cfg = config.networking.stevenBlackHosts; + alternatesList = (if cfg.blockFakenews then [ "fakenews" ] else []) ++ + (if cfg.blockGambling then [ "gambling" ] else []) ++ + (if cfg.blockPorn then [ "porn" ] else []) ++ + (if cfg.blockSocial then [ "social" ] else []); + alternatesPath = "alternates/" + builtins.concatStringsSep "-" alternatesList + "/"; + in + { + options.networking.stevenBlackHosts = { + enable = mkEnableOption "Use Steven Black's hosts file as extra hosts."; + blockFakenews = mkEnableOption "Additionally block fakenews hosts."; + blockGambling = mkEnableOption "Additionally block gambling hosts."; + blockPorn = mkEnableOption "Additionally block porn hosts."; + blockSocial = mkEnableOption "Additionally block social hosts."; + }; + config = mkIf cfg.enable { + networking.extraHosts = + builtins.readFile ( + "${self}/" + (if alternatesList != [] then alternatesPath else "") + "hosts" + ); + }; }; - config = mkIf cfg.enable { - networking.extraHosts = - builtins.readFile ( - "${self}/" + (if alternatesList != [] then alternatesPath else "") + "hosts" - ); - }; - }; - } // flake-utils.lib.eachDefaultSystem - (system: - let - pkgs = nixpkgs.legacyPackages.${system}; - in - { - devShell = pkgs.mkShell { - buildInputs = with pkgs; [ - python3 - python3Packages.flake8 - python3Packages.requests - ]; - }; - } - ); + + devShells = forAllSystems (system: + let pkgs = nixpkgsFor.${system}; in + { + default = pkgs.mkShell { + buildInputs = with pkgs; [ + python3 + python3Packages.flake8 + python3Packages.requests + ]; + }; + }); + }; }