From 56f11d4adef666c6da762c222111d3f5989a440f Mon Sep 17 00:00:00 2001 From: SebastianStork Date: Fri, 7 Nov 2025 21:03:19 +0100 Subject: [PATCH] Add global lib `relativePath` --- flake-parts/lib.nix | 5 ++++- lib/default.nix | 8 +++++++- modules/system/meta/domains.nix | 7 ++++--- modules/system/meta/ports.nix | 8 ++++---- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/flake-parts/lib.nix b/flake-parts/lib.nix index 64b336c..97d0fee 100644 --- a/flake-parts/lib.nix +++ b/flake-parts/lib.nix @@ -1,4 +1,7 @@ { self, inputs, ... }: { - flake.lib = import "${self}/lib" inputs.nixpkgs.lib; + flake.lib = import "${self}/lib" { + inherit (inputs.nixpkgs) lib; + inherit self; + }; } diff --git a/lib/default.nix b/lib/default.nix index 6df27b9..ef9e36e 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,4 +1,8 @@ -lib: { +{ + lib, + self, +}: +{ isTailscaleDomain = domain: domain |> lib.hasSuffix ".ts.net"; subdomainOf = domain: domain |> lib.splitString "." |> lib.head; @@ -15,4 +19,6 @@ lib: { mkUnprotectedMessage = name: "${name} should only be exposed on private networks; access control isn't yet configured"; + + relativePath = path: path |> toString |> lib.removePrefix "${self}/"; } diff --git a/modules/system/meta/domains.nix b/modules/system/meta/domains.nix index 3100168..d0c0914 100644 --- a/modules/system/meta/domains.nix +++ b/modules/system/meta/domains.nix @@ -2,6 +2,7 @@ config, self, lib, + lib', ... }: let @@ -34,10 +35,10 @@ in |> lib.map (value: value.options.meta.domains.list.definitionsWithLocations) |> lib.concatLists |> lib.concatMap ( - entry: - entry.value + { file, value }: + value |> lib.map (domain: { - file = entry.file |> lib.removePrefix "${self}/"; + file = lib'.relativePath file; inherit domain; }) ) diff --git a/modules/system/meta/ports.nix b/modules/system/meta/ports.nix index f36622c..0cecc77 100644 --- a/modules/system/meta/ports.nix +++ b/modules/system/meta/ports.nix @@ -1,8 +1,8 @@ { config, options, - self, lib, + lib', ... }: let @@ -28,10 +28,10 @@ in protocol: options.meta.ports.${protocol}.list.definitionsWithLocations |> lib.concatMap ( - entry: - entry.value + { file, value }: + value |> lib.map (port: { - file = entry.file |> lib.removePrefix "${self}/"; + file = lib'.relativePath file; inherit port; }) )