diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..48e3a7d --- /dev/null +++ b/default.nix @@ -0,0 +1,35 @@ +{ + pkgs ? import { }, +}: + +let + mkZen = + pkgs: name: system: entry: + let + variant = (builtins.fromJSON (builtins.readFile ./sources.json)).${entry}.${system}; + + desktopFile = if name == "beta" then "zen.desktop" else "zen_${name}.desktop"; + in + pkgs.callPackage ./package.nix { + inherit name desktopFile variant; + }; + + mkZenWrapped = + pkgs: name: system: entry: + pkgs.wrapFirefox entry { + icon = "zen-${name}"; + wmClass = "zen-${name}"; + hasMozSystemDirPatch = false; + }; +in +rec { + beta-unwrapped = mkZen pkgs "beta" system "beta"; + twilight-unwrapped = mkZen pkgs "twilight" system "twilight"; + twilight-official-unwrapped = mkZen pkgs "twilight" system "twilight-official"; + + beta = mkZenWrapped pkgs "beta" system beta-unwrapped; + twilight = mkZenWrapped pkgs "twilight" system twilight-unwrapped; + twilight-official = mkZenWrapped pkgs "twilight" system twilight-official-unwrapped; + + default = beta; +} diff --git a/flake.nix b/flake.nix index 9e38f33..94acbec 100644 --- a/flake.nix +++ b/flake.nix @@ -12,27 +12,6 @@ nixpkgs, home-manager, }: let - mkZen = name: system: entry: let - pkgs = nixpkgs.legacyPackages.${system}; - variant = (builtins.fromJSON (builtins.readFile ./sources.json)).${entry}.${system}; - - desktopFile = - if name == "beta" - then "zen.desktop" - else "zen_${name}.desktop"; - in - pkgs.callPackage ./package.nix { - inherit name desktopFile variant; - }; - - mkZenWrapped = name: system: entry: let - pkgs = nixpkgs.legacyPackages.${system}; - in - pkgs.wrapFirefox entry { - icon = "zen-${name}"; - wmClass = "zen-${name}"; - hasMozSystemDirPatch = false; - }; supportedSystems = [ "x86_64-linux" @@ -41,16 +20,8 @@ forAllSystems = nixpkgs.lib.genAttrs supportedSystems; in { - packages = forAllSystems (system: rec { - beta-unwrapped = mkZen "beta" system "beta"; - twilight-unwrapped = mkZen "twilight" system "twilight"; - twilight-official-unwrapped = mkZen "twilight" system "twilight-official"; - - beta = mkZenWrapped "beta" system beta-unwrapped; - twilight = mkZenWrapped "twilight" system twilight-unwrapped; - twilight-official = mkZenWrapped "twilight" system twilight-official-unwrapped; - - default = beta; + packages = forAllSystems (system: import ./default.nix { + pkgs = nixpkgs.legacyPackages.${system}; }); formatter = forAllSystems (