chore: move some common libs

This commit is contained in:
arcnmx 2024-03-26 11:21:40 -07:00
parent f2b0b06eae
commit 4ad8e34fa4
7 changed files with 30 additions and 21 deletions

11
lib.nix
View file

@ -4,9 +4,10 @@
systems, systems,
}: let }: let
nixlib = inputs.nixpkgs.lib; nixlib = inputs.nixpkgs.lib;
inherit (nixlib.modules) mkOrder mkOverride;
inherit (nixlib.strings) splitString toLower; inherit (nixlib.strings) splitString toLower;
inherit (nixlib.lists) imap0 elemAt; inherit (nixlib.lists) imap0 elemAt;
inherit (nixlib.attrsets) listToAttrs nameValuePair; inherit (nixlib.attrsets) mapAttrs listToAttrs nameValuePair;
inherit (nixlib.strings) substring fixedWidthString replaceStrings concatMapStringsSep; inherit (nixlib.strings) substring fixedWidthString replaceStrings concatMapStringsSep;
inherit (nixlib.trivial) flip toHexString bitOr; inherit (nixlib.trivial) flip toHexString bitOr;
@ -35,6 +36,13 @@
mkWinPath = replaceStrings ["/"] ["\\"]; mkWinPath = replaceStrings ["/"] ["\\"];
mkBaseDn = domain: concatMapStringsSep "," (part: "dc=${part}") (splitString "." domain); mkBaseDn = domain: concatMapStringsSep "," (part: "dc=${part}") (splitString "." domain);
mapListToAttrs = f: l: listToAttrs (map f l);
mkAlmostOptionDefault = mkOverride 1400;
mkAlmostAfter = mkOrder 1400;
mapOverride = priority: mapAttrs (_: mkOverride priority);
mapOptionDefaults = mapOverride 1500;
treeToModulesOutput = modules: treeToModulesOutput = modules:
{ {
${ ${
@ -53,6 +61,7 @@ in {
lib = { lib = {
domain = "gensokyo.zone"; domain = "gensokyo.zone";
inherit treeToModulesOutput mkWinPath mkBaseDn userIs eui64 toHexStringLower hexCharToInt; inherit treeToModulesOutput mkWinPath mkBaseDn userIs eui64 toHexStringLower hexCharToInt;
inherit mkAlmostAfter mkAlmostOptionDefault mapOptionDefaults mapOverride mapListToAttrs;
inherit (inputs.arcexprs.lib) unmerged json; inherit (inputs.arcexprs.lib) unmerged json;
}; };
generate = import ./generate.nix {inherit inputs tree;}; generate = import ./generate.nix {inherit inputs tree;};

View file

@ -1,11 +1,10 @@
{ config, lib, pkgs, ... }: let { config, lib, inputs, pkgs, ... }: let
inherit (inputs.self.lib.lib) mkAlmostOptionDefault mapOptionDefaults;
inherit (lib.options) mkOption mkEnableOption mkPackageOption; inherit (lib.options) mkOption mkEnableOption mkPackageOption;
inherit (lib.modules) mkIf mkMerge mkAfter mkDefault mkOptionDefault mkOverride; inherit (lib.modules) mkIf mkMerge mkAfter mkDefault mkOptionDefault;
inherit (lib.attrsets) mapAttrs mapAttrs' nameValuePair; inherit (lib.attrsets) mapAttrs' nameValuePair;
inherit (lib.lists) isList imap0; inherit (lib.lists) isList imap0;
inherit (lib.strings) concatStringsSep; inherit (lib.strings) concatStringsSep;
mkAlmostOptionDefault = mkOverride 1250;
mapOptionDefaults = mapAttrs (_: mkOptionDefault);
cfg = config.services.barcodebuddy; cfg = config.services.barcodebuddy;
toEnvName = key: "BBUDDY_" + key; toEnvName = key: "BBUDDY_" + key;
toEnvValue = value: toEnvValue = value:

View file

@ -1,13 +1,14 @@
{ {
config, config,
lib, lib,
inputs,
... ...
}: let }: let
inherit (inputs.self.lib.lib) mkAlmostOptionDefault;
inherit (lib.options) mkOption mkEnableOption; inherit (lib.options) mkOption mkEnableOption;
inherit (lib.modules) mkIf mkMerge mkOptionDefault mkForce mkOverride mkRenamedOptionModule; inherit (lib.modules) mkIf mkMerge mkOptionDefault mkForce;
inherit (lib.attrsets) attrValues mapAttrs mapAttrsToList; inherit (lib.attrsets) attrValues mapAttrs;
inherit (lib.lists) filter concatMap; inherit (lib.lists) filter concatMap;
mkAlmostOptionDefault = mkOverride 1250;
inherit (config.services) nginx; inherit (config.services) nginx;
listenModule = { config, virtualHost, ... }: { listenModule = { config, virtualHost, ... }: {
options = with lib.types; { options = with lib.types; {

View file

@ -1,18 +1,18 @@
{ {
config, config,
lib, lib,
inputs,
... ...
}: let }: let
inherit (inputs.self.lib.lib) mkAlmostAfter mkAlmostOptionDefault;
inherit (lib.options) mkOption mkEnableOption; inherit (lib.options) mkOption mkEnableOption;
inherit (lib.modules) mkIf mkMerge mkBefore mkAfter mkOrder mkDefault mkOptionDefault mkOverride; inherit (lib.modules) mkIf mkMerge mkBefore mkDefault mkOptionDefault;
inherit (lib.strings) optionalString splitString match; inherit (lib.strings) optionalString splitString match;
inherit (lib.attrsets) attrValues; inherit (lib.attrsets) attrValues;
inherit (lib.lists) length head /*optional*/ any; inherit (lib.lists) length head /*optional*/ any;
inherit (lib.trivial) mapNullable; inherit (lib.trivial) mapNullable;
#inherit (config) networking; #inherit (config) networking;
inherit (config.services) nginx; inherit (config.services) nginx;
mkAlmostAfter = mkOrder 1250;
mkAlmostOptionDefault = mkOverride 1250;
schemeForUrl = url: let schemeForUrl = url: let
parts = splitString ":" url; parts = splitString ":" url;
in if length parts == 1 then null else head parts; in if length parts == 1 then null else head parts;

View file

@ -1,13 +1,14 @@
{ {
config, config,
lib, lib,
inputs,
... ...
}: let }: let
inherit (inputs.self.lib.lib) mkAlmostOptionDefault;
inherit (lib.options) mkOption mkEnableOption; inherit (lib.options) mkOption mkEnableOption;
inherit (lib.modules) mkIf mkMerge mkDefault mkOptionDefault mkOverride; inherit (lib.modules) mkIf mkMerge mkDefault mkOptionDefault;
inherit (lib.trivial) warnIf; inherit (lib.trivial) warnIf;
inherit (config.services.nginx) virtualHosts; inherit (config.services.nginx) virtualHosts;
mkAlmostOptionDefault = mkOverride 1250;
forceRedirectConfig = virtualHost: '' forceRedirectConfig = virtualHost: ''
if ($x_scheme = http) { if ($x_scheme = http) {
return ${toString virtualHost.redirectCode} https://$x_forwarded_host$request_uri; return ${toString virtualHost.redirectCode} https://$x_forwarded_host$request_uri;

View file

@ -1,17 +1,17 @@
{ {
pkgs,
config, config,
lib, lib,
inputs,
... ...
}: let }: let
inherit (inputs.self.lib.lib) mkAlmostOptionDefault;
inherit (lib.options) mkOption mkEnableOption; inherit (lib.options) mkOption mkEnableOption;
inherit (lib.modules) mkIf mkMerge mkBefore mkAfter mkOptionDefault mkOverride; inherit (lib.modules) mkIf mkMerge mkBefore mkAfter mkOptionDefault;
inherit (lib.attrsets) mapAttrsToList; inherit (lib.attrsets) mapAttrsToList;
inherit (lib.strings) toLower replaceStrings concatStringsSep; inherit (lib.strings) toLower replaceStrings;
inherit (config) networking; inherit (config) networking;
inherit (config.services) vouch-proxy nginx tailscale; inherit (config.services) vouch-proxy nginx tailscale;
inherit (nginx) vouch; inherit (nginx) vouch;
mkAlmostOptionDefault = mkOverride 1250;
locationModule = {config, virtualHost, ...}: { locationModule = {config, virtualHost, ...}: {
options.vouch = with lib.types; { options.vouch = with lib.types; {
requireAuth = mkEnableOption "require auth to access this location"; requireAuth = mkEnableOption "require auth to access this location";

View file

@ -1,12 +1,11 @@
{config, lib, inputs, ...}: let {config, lib, inputs, ...}: let
inherit (inputs.self.lib.lib) unmerged eui64 toHexStringLower; inherit (inputs.self.lib.lib) unmerged eui64 toHexStringLower mkAlmostOptionDefault;
inherit (lib.options) mkOption mkEnableOption; inherit (lib.options) mkOption mkEnableOption;
inherit (lib.modules) mkIf mkMerge mkOptionDefault mkOverride; inherit (lib.modules) mkIf mkMerge mkOptionDefault;
inherit (lib.attrsets) attrValues; inherit (lib.attrsets) attrValues;
inherit (lib.lists) elem findSingle findFirst; inherit (lib.lists) elem findSingle findFirst;
inherit (lib.strings) hasPrefix removePrefix replaceStrings; inherit (lib.strings) hasPrefix removePrefix replaceStrings;
inherit (lib.trivial) mapNullable; inherit (lib.trivial) mapNullable;
mkAlmostOptionDefault = mkOverride 1250;
cfg = config.proxmox.network; cfg = config.proxmox.network;
internalOffset = 32; internalOffset = 32;
networkInterfaceModule = { config, name, system, ... }: { networkInterfaceModule = { config, name, system, ... }: {