refactor: massive refactor using flake-parts; use typos-cli and
keep-sorted
This commit is contained in:
112
lib/default.nix
112
lib/default.nix
@@ -1,102 +1,10 @@
|
||||
{ lib }:
|
||||
|
||||
{
|
||||
makeSwitch =
|
||||
{
|
||||
default ? false,
|
||||
config,
|
||||
optionPath,
|
||||
optionName,
|
||||
config',
|
||||
}:
|
||||
let
|
||||
cfg = lib.getAttrFromPath optionPath config.my;
|
||||
in
|
||||
{
|
||||
options.my = lib.setAttrByPath optionPath {
|
||||
enable = (lib.mkEnableOption optionName) // {
|
||||
inherit default;
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable config';
|
||||
};
|
||||
|
||||
makeHomePackageConfig =
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
packageName,
|
||||
packagePath,
|
||||
optionPath,
|
||||
extraConfig ? { },
|
||||
}:
|
||||
lib.my.makeSwitch {
|
||||
inherit config optionPath;
|
||||
optionName = packageName;
|
||||
config' = lib.mkMerge [
|
||||
{
|
||||
my.hm.home.packages = [ (lib.getAttrFromPath packagePath pkgs) ];
|
||||
}
|
||||
extraConfig
|
||||
];
|
||||
};
|
||||
|
||||
makeHomeProgramConfig =
|
||||
{
|
||||
config,
|
||||
programName,
|
||||
optionPath,
|
||||
extraConfig ? { },
|
||||
}:
|
||||
lib.my.makeSwitch {
|
||||
inherit config optionPath;
|
||||
optionName = programName;
|
||||
|
||||
config' = lib.mkMerge [
|
||||
{
|
||||
my.hm.programs = lib.setAttrByPath [ programName "enable" ] true;
|
||||
}
|
||||
extraConfig
|
||||
];
|
||||
};
|
||||
|
||||
makeNixosPackageConfig =
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
packageName,
|
||||
packagePath,
|
||||
optionPath,
|
||||
extraConfig ? { },
|
||||
}:
|
||||
lib.my.makeSwitch {
|
||||
inherit config optionPath;
|
||||
optionName = packageName;
|
||||
config' = lib.mkMerge [
|
||||
{
|
||||
environment.systemPackages = [ (lib.getAttrFromPath packagePath pkgs) ];
|
||||
}
|
||||
extraConfig
|
||||
];
|
||||
};
|
||||
|
||||
makeNixosProgramConfig =
|
||||
{
|
||||
config,
|
||||
programName,
|
||||
optionPath,
|
||||
extraConfig ? { },
|
||||
}:
|
||||
lib.my.makeSwitch {
|
||||
inherit config optionPath;
|
||||
optionName = programName;
|
||||
|
||||
config' = lib.mkMerge [
|
||||
{
|
||||
programs = lib.setAttrByPath [ programName "enable" ] true;
|
||||
}
|
||||
extraConfig
|
||||
];
|
||||
};
|
||||
}
|
||||
{ lib, inputs }:
|
||||
lib.extend (
|
||||
self: super: {
|
||||
my = import ./my.nix { lib = self; };
|
||||
umport = import ./umport.nix { lib = self; };
|
||||
inherit (inputs.home-manager.lib) hm;
|
||||
haumea = inputs.haumea.lib;
|
||||
infuse = (import inputs.infuse { inherit lib; }).v1.infuse;
|
||||
}
|
||||
)
|
||||
|
||||
102
lib/my.nix
Normal file
102
lib/my.nix
Normal file
@@ -0,0 +1,102 @@
|
||||
{ lib }:
|
||||
|
||||
{
|
||||
makeSwitch =
|
||||
{
|
||||
default ? false,
|
||||
config,
|
||||
optionPath,
|
||||
optionName,
|
||||
config',
|
||||
}:
|
||||
let
|
||||
cfg = lib.getAttrFromPath optionPath config.my;
|
||||
in
|
||||
{
|
||||
options.my = lib.setAttrByPath optionPath {
|
||||
enable = (lib.mkEnableOption optionName) // {
|
||||
inherit default;
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable config';
|
||||
};
|
||||
|
||||
makeHomePackageConfig =
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
packageName,
|
||||
packagePath,
|
||||
optionPath,
|
||||
extraConfig ? { },
|
||||
}:
|
||||
lib.my.makeSwitch {
|
||||
inherit config optionPath;
|
||||
optionName = packageName;
|
||||
config' = lib.mkMerge [
|
||||
{
|
||||
my.hm.home.packages = [ (lib.getAttrFromPath packagePath pkgs) ];
|
||||
}
|
||||
extraConfig
|
||||
];
|
||||
};
|
||||
|
||||
makeHomeProgramConfig =
|
||||
{
|
||||
config,
|
||||
programName,
|
||||
optionPath,
|
||||
extraConfig ? { },
|
||||
}:
|
||||
lib.my.makeSwitch {
|
||||
inherit config optionPath;
|
||||
optionName = programName;
|
||||
|
||||
config' = lib.mkMerge [
|
||||
{
|
||||
my.hm.programs = lib.setAttrByPath [ programName "enable" ] true;
|
||||
}
|
||||
extraConfig
|
||||
];
|
||||
};
|
||||
|
||||
makeNixosPackageConfig =
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
packageName,
|
||||
packagePath,
|
||||
optionPath,
|
||||
extraConfig ? { },
|
||||
}:
|
||||
lib.my.makeSwitch {
|
||||
inherit config optionPath;
|
||||
optionName = packageName;
|
||||
config' = lib.mkMerge [
|
||||
{
|
||||
environment.systemPackages = [ (lib.getAttrFromPath packagePath pkgs) ];
|
||||
}
|
||||
extraConfig
|
||||
];
|
||||
};
|
||||
|
||||
makeNixosProgramConfig =
|
||||
{
|
||||
config,
|
||||
programName,
|
||||
optionPath,
|
||||
extraConfig ? { },
|
||||
}:
|
||||
lib.my.makeSwitch {
|
||||
inherit config optionPath;
|
||||
optionName = programName;
|
||||
|
||||
config' = lib.mkMerge [
|
||||
{
|
||||
programs = lib.setAttrByPath [ programName "enable" ] true;
|
||||
}
|
||||
extraConfig
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
# Just a convenience function that returns the given Nixpkgs standard
|
||||
# library extended with the imxyy library.
|
||||
|
||||
stdlib:
|
||||
|
||||
let
|
||||
mkMyLib = import ./.;
|
||||
in
|
||||
stdlib.extend (
|
||||
self: super: {
|
||||
my = mkMyLib { lib = self; };
|
||||
umport = import ./umport.nix { lib = self; };
|
||||
}
|
||||
)
|
||||
Reference in New Issue
Block a user