{ description = "Unauthenticated POP3/SMTP front end proxied to authenticated IMAPS/SMTPS backends"; inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; outputs = { self, nixpkgs }: let systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; forAllSystems = fn: nixpkgs.lib.genAttrs systems (system: fn nixpkgs.legacyPackages.${system}); in { overlays.default = final: _prev: { legacy-email-proxy = final.callPackage ./package.nix { }; }; packages = forAllSystems (pkgs: rec { legacy-email-proxy = pkgs.callPackage ./package.nix { }; default = legacy-email-proxy; }); # The NixOS module with its package option pointed at this flake's build, # so consumers need no overlay. Use nixosModules.legacy-email-proxy # instead if you would rather apply overlays.default yourself. nixosModules.default = { lib, pkgs, ... }: { imports = [ ./module.nix ]; services.legacy-email-proxy.package = lib.mkDefault self.packages.${pkgs.stdenv.hostPlatform.system}.legacy-email-proxy; }; nixosModules.legacy-email-proxy = ./module.nix; # The package builds only if the test suite passes, so this covers both. checks = forAllSystems (pkgs: { inherit (self.packages.${pkgs.system}) legacy-email-proxy; }); devShells = forAllSystems (pkgs: { default = pkgs.mkShellNoCC { inputsFrom = [ self.packages.${pkgs.system}.legacy-email-proxy ]; packages = [ pkgs.python3Packages.pytest ]; }; }); formatter = forAllSystems (pkgs: pkgs.nixfmt-tree); }; }