flake: refactor
This commit is contained in:
78
flake.nix
78
flake.nix
@ -2,62 +2,44 @@
|
||||
description = "xeals's Nix repository";
|
||||
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
inputs.flake-utils.url = "github:numtide/flake-utils";
|
||||
|
||||
outputs = { self, nixpkgs }:
|
||||
outputs = { self, nixpkgs, flake-utils }:
|
||||
let
|
||||
|
||||
inherit (nixpkgs) lib;
|
||||
|
||||
supportedSystems = [
|
||||
"aarch64-darwin"
|
||||
"aarch64-linux"
|
||||
"i686-linux"
|
||||
"x86_64-darwin"
|
||||
"x86_64-linux"
|
||||
];
|
||||
|
||||
forAllSystems = f: lib.genAttrs supportedSystems (system: f system);
|
||||
|
||||
inherit (flake-utils.lib) mkApp;
|
||||
in
|
||||
{
|
||||
flake-utils.lib.eachDefaultSystem
|
||||
(system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
in
|
||||
{
|
||||
packages =
|
||||
lib.filterAttrs
|
||||
(_: drv: builtins.elem system (drv.meta.platforms or [ ]))
|
||||
(import ./pkgs/top-level/all-packages.nix { inherit pkgs; });
|
||||
|
||||
nixosModules = lib.mapAttrs (_: path: import path) (import ./modules);
|
||||
|
||||
nixosModule = {
|
||||
imports = lib.attrValues self.nixosModules;
|
||||
apps = {
|
||||
alacritty = mkApp { drv = pkgs.alacritty-ligatures; exePath = "/bin/alacritty"; };
|
||||
protonmail-bridge = mkApp { drv = pkgs.protonmail-bridge; };
|
||||
protonmail-bridge-headless = mkApp { drv = pkgs.protonmail-bridge; };
|
||||
psst-cli = mkApp { drv = pkgs.psst; exePath = "/bin/psst-cli"; };
|
||||
psst-gui = mkApp { drv = pkgs.psst; exePath = "/bin/psst-gui"; };
|
||||
samrewritten = mkApp { drv = pkgs.samrewritten; };
|
||||
spotify-ripper = mkApp { drv = pkgs.spotify-ripper; };
|
||||
};
|
||||
})
|
||||
// {
|
||||
nixosModules = lib.mapAttrs (_: path: import path) (import ./modules) // {
|
||||
default = {
|
||||
imports = lib.attrValues self.nixosModules;
|
||||
};
|
||||
};
|
||||
|
||||
overlays = import ./overlays // {
|
||||
pkgs = _final: prev: import ./pkgs/top-level/all-packages.nix { pkgs = prev; };
|
||||
pkgs = _: prev: import ./pkgs/top-level/all-packages.nix { pkgs = prev; };
|
||||
default = _: _: { xeals = nixpkgs.lib.composeExtensions self.overlays.pkgs; };
|
||||
};
|
||||
|
||||
overlay = _final: _prev: {
|
||||
xeals = nixpkgs.lib.composeExtensions self.overlays.pkgs;
|
||||
};
|
||||
|
||||
packages = forAllSystems (system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
xPkgs = import ./pkgs/top-level/all-packages.nix { inherit pkgs; };
|
||||
in
|
||||
lib.filterAttrs
|
||||
(_attr: drv: builtins.elem system (drv.meta.platforms or [ ]))
|
||||
xPkgs);
|
||||
|
||||
apps = forAllSystems (system:
|
||||
let
|
||||
mkApp = opts: { type = "app"; } // opts;
|
||||
pkgs = self.packages.${system};
|
||||
in
|
||||
{
|
||||
alacritty = mkApp { program = "${pkgs.alacritty-ligatures}/bin/alacritty"; };
|
||||
protonmail-bridge = mkApp { program = "${pkgs.protonmail-bridge}/bin/protonmail-bridge"; };
|
||||
protonmail-bridge-headless = mkApp { program = "${pkgs.protonmail-bridge}/bin/protonmail-bridge"; };
|
||||
psst-cli = mkApp { program = "${pkgs.psst}/bin/psst-cli"; };
|
||||
psst-gui = mkApp { program = "${pkgs.psst}/bin/psst-gui"; };
|
||||
samrewritten = mkApp { program = "${pkgs.samrewritten}/bin/samrewritten"; };
|
||||
spotify-ripper = mkApp { program = "${pkgs.spotify-ripper}/bin/spotify-ripper"; };
|
||||
});
|
||||
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user