refactor in style of synaptic standard
This commit is contained in:
parent
ce295da1c1
commit
4b6b898854
119 changed files with 1098 additions and 3063 deletions
29
util/create.nix
Normal file
29
util/create.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
let
|
||||
inputs = import ./inputs.nix;
|
||||
inherit (inputs) nixpkgs;
|
||||
inherit (nixpkgs) lib;
|
||||
recursivelyImport = import ./recursively-import.nix { inherit lib; };
|
||||
in
|
||||
{
|
||||
systems =
|
||||
definitions:
|
||||
nixpkgs.lib.mapAttrs (
|
||||
name: info:
|
||||
nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
mainUser = info.user;
|
||||
};
|
||||
modules = [
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
(lib.mkAliasOptionModule [ "hm" ] [ "home-manager" "users" info.user ])
|
||||
{
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit inputs;
|
||||
mainUser = info.user;
|
||||
};
|
||||
}
|
||||
] ++ (recursivelyImport info.imports);
|
||||
}
|
||||
) definitions;
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
inputs:
|
||||
let
|
||||
inherit (inputs.nixpkgs.lib) filterAttrs mapAttrsToList;
|
||||
inherit (builtins) elem;
|
||||
in
|
||||
l:
|
||||
filterAttrs (_: v: elem v l) inputs
|
||||
|> mapAttrsToList (n: v: v.nixosModules.${n} or v.nixosModules.default)
|
15
util/inputs.nix
Normal file
15
util/inputs.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
let
|
||||
lock = builtins.fromJSON (builtins.readFile ../flake.lock);
|
||||
node = lock.nodes.root.inputs.__flake-compat;
|
||||
inherit (lock.nodes.${node}.locked) narHash rev url;
|
||||
flake-compat = builtins.fetchTarball {
|
||||
url = "${url}/archive/${rev}.tar.gz";
|
||||
sha256 = narHash;
|
||||
};
|
||||
flake = import flake-compat {
|
||||
src = ../.;
|
||||
copySourceTreeToStore = false;
|
||||
useBuiltinsFetchTree = true;
|
||||
};
|
||||
in
|
||||
flake.inputs
|
21
util/recursively-import.nix
Normal file
21
util/recursively-import.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ lib }:
|
||||
let
|
||||
recurseIntoFolders =
|
||||
elem:
|
||||
if lib.isPath elem && lib.pathIsDirectory elem then
|
||||
lib.filesystem.listFilesRecursive elem
|
||||
else
|
||||
# If it's not a folder, return it unchanged. This handles single-files and
|
||||
# literal modules (written with {} syntax)
|
||||
lib.singleton elem;
|
||||
|
||||
filterNixFiles =
|
||||
paths:
|
||||
builtins.filter
|
||||
# filter the files for `.nix` files. if it's not a file, it can stay.
|
||||
(path: !builtins.isPath path || lib.hasSuffix ".nix" path)
|
||||
# Expand any folders into all the files within them. Note that this comes
|
||||
# BEFORE the filtering that's happening above
|
||||
(builtins.concatMap recurseIntoFolders paths);
|
||||
in
|
||||
filterNixFiles
|
Loading…
Add table
Add a link
Reference in a new issue