diff options
| author | tv <tv@krebsco.de> | 2015-03-18 00:47:23 +0100 | 
|---|---|---|
| committer | tv <tv@krebsco.de> | 2015-05-19 23:10:57 +0200 | 
| commit | fcb1adda7a7e9fdfcd003dc393daedf2998183e7 (patch) | |
| tree | 5f34060fc32b2def18bd0d910c254a573fd2d9ec /lib | |
| parent | 879f0b21d3be6e23be7092b04e970b5ec710370b (diff) | |
./run deploy configuration [user]@hostname
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/modules.nix | 21 | 
1 files changed, 21 insertions, 0 deletions
| diff --git a/lib/modules.nix b/lib/modules.nix new file mode 100644 index 0000000..248e638 --- /dev/null +++ b/lib/modules.nix @@ -0,0 +1,21 @@ +let +  pkgs = import <nixpkgs> {}; +  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; +} | 
