nix: streamline plugin package generation
Simplifies nix code and gets rid of discouraged rec pattern in flake.nix
This commit is contained in:
90
flake.nix
90
flake.nix
@@ -22,8 +22,7 @@
|
|||||||
system,
|
system,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (inputs.nixpkgs) lib;
|
inherit (pkgs) callPackage;
|
||||||
inherit (lib) getExe;
|
|
||||||
in {
|
in {
|
||||||
# provide the formatter for nix fmt
|
# provide the formatter for nix fmt
|
||||||
formatter = pkgs.alejandra;
|
formatter = pkgs.alejandra;
|
||||||
@@ -45,78 +44,47 @@
|
|||||||
|
|
||||||
packages = let
|
packages = let
|
||||||
lockFile = ./Cargo.lock;
|
lockFile = ./Cargo.lock;
|
||||||
in rec {
|
|
||||||
anyrun = pkgs.callPackage ./nix/default.nix {inherit inputs lockFile;};
|
# Since all plugin derivations are called with the exact same arguments
|
||||||
# alias nix build .# to anyrun
|
# it is possible to streamline calling packages with a single function
|
||||||
default = anyrun;
|
# that takes name as an argument, and handles default inherits.
|
||||||
|
mkPlugin = name:
|
||||||
|
callPackage ./nix/plugins/default.nix {
|
||||||
|
inherit inputs lockFile;
|
||||||
|
inherit name;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
default = self'.packages.anyrun;
|
||||||
|
anyrun = callPackage ./nix/default.nix {inherit inputs lockFile;};
|
||||||
|
|
||||||
anyrun-with-all-plugins = pkgs.callPackage ./nix/default.nix {
|
anyrun-with-all-plugins = pkgs.callPackage ./nix/default.nix {
|
||||||
inherit inputs lockFile;
|
inherit inputs lockFile;
|
||||||
dontBuildPlugins = false;
|
dontBuildPlugins = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
# expose each plugin as a package
|
# Expose each plugin as a separate package. This uses the mkPlugin function
|
||||||
applications = pkgs.callPackage ./nix/plugins/default.nix {
|
# to call the same derivation with same default inherits and the name of the
|
||||||
inherit inputs lockFile;
|
# plugin every time.
|
||||||
name = "applications";
|
applications = mkPlugin "applications";
|
||||||
};
|
dictionary = mkPlugin "dictionary";
|
||||||
|
kidex = mkPlugin "kidex";
|
||||||
dictionary = pkgs.callPackage ./nix/plugins/default.nix {
|
randr = mkPlugin "randr";
|
||||||
inherit inputs lockFile;
|
rink = mkPlugin "rink";
|
||||||
name = "dictionary";
|
shell = mkPlugin "shell";
|
||||||
};
|
stdin = mkPlugin "stdin";
|
||||||
|
symbols = mkPlugin "symbols";
|
||||||
kidex = pkgs.callPackage ./nix/plugins/default.nix {
|
translate = mkPlugin "translate";
|
||||||
inherit inputs lockFile;
|
websearch = mkPlugin "websearch";
|
||||||
name = "kidex";
|
|
||||||
};
|
|
||||||
|
|
||||||
randr = pkgs.callPackage ./nix/plugins/default.nix {
|
|
||||||
inherit inputs lockFile;
|
|
||||||
name = "randr";
|
|
||||||
};
|
|
||||||
|
|
||||||
rink = pkgs.callPackage ./nix/plugins/default.nix {
|
|
||||||
inherit inputs lockFile;
|
|
||||||
name = "rink";
|
|
||||||
};
|
|
||||||
|
|
||||||
shell = pkgs.callPackage ./nix/plugins/default.nix {
|
|
||||||
inherit inputs lockFile;
|
|
||||||
name = "shell";
|
|
||||||
};
|
|
||||||
|
|
||||||
stdin = pkgs.callPackage ./nix/plugins/default.nix {
|
|
||||||
inherit inputs lockFile;
|
|
||||||
name = "stdin";
|
|
||||||
};
|
|
||||||
|
|
||||||
symbols = pkgs.callPackage ./nix/plugins/default.nix {
|
|
||||||
inherit inputs lockFile;
|
|
||||||
name = "symbols";
|
|
||||||
};
|
|
||||||
|
|
||||||
translate = pkgs.callPackage ./nix/plugins/default.nix {
|
|
||||||
inherit inputs lockFile;
|
|
||||||
name = "translate";
|
|
||||||
};
|
|
||||||
|
|
||||||
websearch = pkgs.callPackage ./nix/plugins/default.nix {
|
|
||||||
inherit inputs lockFile;
|
|
||||||
name = "websearch";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Set up an overlay from packages exposed by this flake
|
# Set up an overlay from packages exposed by this flake
|
||||||
overlayAttrs = config.packages;
|
overlayAttrs = config.packages;
|
||||||
};
|
};
|
||||||
|
|
||||||
flake = _: rec {
|
flake = {self, ...}: {
|
||||||
nixosModules.home-manager = homeManagerModules.default;
|
homeManagerModules = {
|
||||||
|
|
||||||
homeManagerModules = rec {
|
|
||||||
anyrun = import ./nix/hm-module.nix inputs.self;
|
anyrun = import ./nix/hm-module.nix inputs.self;
|
||||||
default = anyrun;
|
default = self.homeManagerModules.anyrun;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user