.
This commit is contained in:
parent
59a1fbaf0f
commit
ac3dac322d
78 changed files with 893 additions and 802 deletions
96
lib/default.nix
Normal file
96
lib/default.nix
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkOption types;
|
||||
namespace = "sneeuwvlok";
|
||||
|
||||
channelConfig = {
|
||||
allowUnfree = true;
|
||||
permittedInsecurePackages = [
|
||||
# Due to *arr stack
|
||||
"dotnet-sdk-6.0.428"
|
||||
"aspnetcore-runtime-6.0.36"
|
||||
|
||||
# I think this is because of zen
|
||||
"qtwebengine-5.15.19"
|
||||
|
||||
# For Nheko, the matrix client
|
||||
"olm-3.2.16"
|
||||
];
|
||||
};
|
||||
|
||||
systemOverlays = with inputs; [
|
||||
fenix.overlays.default
|
||||
nix-minecraft.overlay
|
||||
flux.overlays.default
|
||||
];
|
||||
|
||||
mkPkgs = system:
|
||||
import inputs.nixpkgs {
|
||||
inherit system;
|
||||
overlays = systemOverlays;
|
||||
config = channelConfig;
|
||||
};
|
||||
|
||||
sharedContext = {
|
||||
inherit inputs namespace;
|
||||
erosanixLib = inputs.erosanix.lib;
|
||||
repoRoot = ../.;
|
||||
sneeuwvlokLib = config.localLib;
|
||||
terranixLib = inputs.terranix.lib;
|
||||
};
|
||||
|
||||
baseNixosModules =
|
||||
[
|
||||
inputs.grub2-themes.nixosModules.default
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.himmelblau.nixosModules.himmelblau
|
||||
inputs.jovian.nixosModules.default
|
||||
inputs.mydia.nixosModules.default
|
||||
inputs.nix-minecraft.nixosModules.minecraft-servers
|
||||
inputs.nvf.nixosModules.default
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
{
|
||||
nixpkgs = {
|
||||
config = channelConfig;
|
||||
overlays = systemOverlays;
|
||||
};
|
||||
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = sharedContext;
|
||||
sharedModules = config.localUsers.homeSharedModules;
|
||||
};
|
||||
}
|
||||
]
|
||||
++ [ ../modules/nixos ];
|
||||
in {
|
||||
imports = [
|
||||
./options
|
||||
./strings
|
||||
];
|
||||
|
||||
options.localLib = mkOption {
|
||||
type = types.lazyAttrsOf types.raw;
|
||||
default = {};
|
||||
};
|
||||
|
||||
config = {
|
||||
_module.args = {
|
||||
inherit
|
||||
baseNixosModules
|
||||
channelConfig
|
||||
mkPkgs
|
||||
sharedContext
|
||||
systemOverlays
|
||||
;
|
||||
sneeuwvlokLib = config.localLib;
|
||||
};
|
||||
|
||||
flake.lib = config.localLib;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,11 +1,8 @@
|
|||
{ lib, ...}:
|
||||
let
|
||||
inherit (builtins) isString typeOf;
|
||||
inherit (lib) mkOption types throwIfNot concatStringsSep splitStringBy toLower map;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
mkUrlOptions =
|
||||
{lib, ...}: let
|
||||
inherit (lib) mkOption types;
|
||||
in {
|
||||
localLib.options = {
|
||||
mkUrlOptions =
|
||||
defaults:
|
||||
{
|
||||
host = mkOption {
|
||||
|
|
@ -35,4 +32,4 @@ in
|
|||
} // (defaults.protocol or {});
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,8 @@
|
|||
{ lib, ...}:
|
||||
let
|
||||
{lib, ...}: let
|
||||
inherit (builtins) isString typeOf match toString head;
|
||||
inherit (lib) throwIfNot concatStringsSep splitStringBy toLower map concatMapAttrsStringSep;
|
||||
in
|
||||
{
|
||||
strings = {
|
||||
in {
|
||||
localLib.strings = {
|
||||
#========================================================================================
|
||||
# Converts a string to snake case
|
||||
#
|
||||
|
|
@ -36,4 +34,4 @@ in
|
|||
in
|
||||
"${_protocol}${host}${_port}${_path}${_query}${_hash}";
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue