mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 12:29:19 -08:00
chore: move some common libs
This commit is contained in:
parent
f2b0b06eae
commit
4ad8e34fa4
7 changed files with 30 additions and 21 deletions
11
lib.nix
11
lib.nix
|
|
@ -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;};
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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; {
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
|
|
||||||
|
|
@ -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, ... }: {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue