From e663397c9eae11e8fd87894130cbaaa87fbeffc3 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 18 Mar 2015 00:47:23 +0100 Subject: ./run deploy configuration [user]@hostname --- lib/modules.nix | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 lib/modules.nix (limited to 'lib') diff --git a/lib/modules.nix b/lib/modules.nix new file mode 100644 index 00000000..248e638e --- /dev/null +++ b/lib/modules.nix @@ -0,0 +1,21 @@ +let + pkgs = import {}; + inherit (pkgs.lib) concatMap hasAttr; +in rec { + + no-touch-args = { + config = throw "no-touch-args: can't touch config!"; + lib = throw "no-touch-args: can't touch lib!"; + pkgs = throw "no-touch-args: can't touch pkgs!"; + }; + + # list-imports : path -> [path] + # Return a module's transitive list of imports. + # XXX duplicates won't get eliminated from the result. + list-imports = path: + let module = import path no-touch-args; + imports = if hasAttr "imports" module + then concatMap list-imports module.imports + else []; + in [path] ++ imports; +} -- cgit v1.2.3