44 lines
1002 B
Nix
44 lines
1002 B
Nix
{ lib, config, pkgs, flakeRoot, ... }:
|
|
|
|
let
|
|
username = config.defaultUser or "henrov";
|
|
homeDir = config.home.homeDirectory or "/home/${username}";
|
|
|
|
# Absolute path to the assets folder
|
|
assetPath = "${flakeRoot}/assets/copy_2_home";
|
|
|
|
# Helper function to recursively list files in a directory
|
|
recursiveFiles = path:
|
|
let
|
|
entries = builtins.attrNames (builtins.readDir path);
|
|
in
|
|
lib.concatMap (name:
|
|
let
|
|
full = "${path}/${name}";
|
|
in
|
|
if builtins.isDir full
|
|
then recursiveFiles full
|
|
else [ full ]
|
|
) entries;
|
|
|
|
# All files in assets folder
|
|
allFiles = recursiveFiles assetPath;
|
|
|
|
# Map files to home.file entries
|
|
homeFiles = lib.genAttrs allFiles (f: let
|
|
relative = lib.replaceStrings [ "${assetPath}/" ] [ "" ] f;
|
|
in {
|
|
name = relative;
|
|
value = { source = f; };
|
|
});
|
|
in
|
|
{
|
|
_module.args.hmUsers = {
|
|
${username} = {
|
|
home.file = lib.mkMerge [
|
|
homeFiles
|
|
];
|
|
};
|
|
};
|
|
}
|