mirror of
https://github.com/nix-community/home-manager.git
synced 2025-12-14 13:01:09 +01:00
treewide: reformat nixfmt-rfc-style
Reformat repository using new nixfmt-rfc-style.
This commit is contained in:
parent
5df48c4255
commit
cba2f9ce95
1051 changed files with 37028 additions and 26594 deletions
|
|
@ -1,4 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
|
|
@ -11,7 +16,8 @@ let
|
|||
activationCleanupScript = activation.cleanup;
|
||||
|
||||
# derivation to build a single Podman quadlet, outputting its systemd unit files
|
||||
buildPodmanQuadlet = quadlet:
|
||||
buildPodmanQuadlet =
|
||||
quadlet:
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "home-${quadlet.resourceType}-${quadlet.serviceName}";
|
||||
|
||||
|
|
@ -19,9 +25,12 @@ let
|
|||
|
||||
unpackPhase = ''
|
||||
mkdir -p $out/quadlets
|
||||
${concatStringsSep "\n" (map (v:
|
||||
"echo 'linking ${v.quadletData.serviceName}.${v.quadletData.resourceType}'; ln -s ${v.out}/quadlets/${v.quadletData.serviceName}.${v.quadletData.resourceType} $out/quadlets")
|
||||
quadlet.dependencies)}
|
||||
${concatStringsSep "\n" (
|
||||
map (
|
||||
v:
|
||||
"echo 'linking ${v.quadletData.serviceName}.${v.quadletData.resourceType}'; ln -s ${v.out}/quadlets/${v.quadletData.serviceName}.${v.quadletData.resourceType} $out/quadlets"
|
||||
) quadlet.dependencies
|
||||
)}
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
|
|
@ -44,52 +53,68 @@ let
|
|||
|
||||
builtQuadlets = map buildPodmanQuadlet cfg.internal.quadletDefinitions;
|
||||
|
||||
accumulateUnitFiles = prefix: path: quadlet:
|
||||
accumulateUnitFiles =
|
||||
prefix: path: quadlet:
|
||||
let
|
||||
entries = builtins.readDir path;
|
||||
processEntry = name: type:
|
||||
processEntry =
|
||||
name: type:
|
||||
let
|
||||
newPath = "${path}/${name}";
|
||||
newPrefix = prefix + (if prefix == "" then "" else "/") + name;
|
||||
in if type == "directory" then
|
||||
in
|
||||
if type == "directory" then
|
||||
accumulateUnitFiles newPrefix newPath quadlet
|
||||
else [{
|
||||
key = newPrefix;
|
||||
value = {
|
||||
path = newPath;
|
||||
parentQuadlet = quadlet;
|
||||
};
|
||||
}];
|
||||
in flatten
|
||||
(map (name: processEntry name (getAttr name entries)) (attrNames entries));
|
||||
else
|
||||
[
|
||||
{
|
||||
key = newPrefix;
|
||||
value = {
|
||||
path = newPath;
|
||||
parentQuadlet = quadlet;
|
||||
};
|
||||
}
|
||||
];
|
||||
in
|
||||
flatten (map (name: processEntry name (getAttr name entries)) (attrNames entries));
|
||||
|
||||
allUnitFiles = concatMap (builtQuadlet:
|
||||
accumulateUnitFiles "" "${builtQuadlet.outPath}/units"
|
||||
builtQuadlet.quadletData) builtQuadlets;
|
||||
allUnitFiles = concatMap (
|
||||
builtQuadlet: accumulateUnitFiles "" "${builtQuadlet.outPath}/units" builtQuadlet.quadletData
|
||||
) builtQuadlets;
|
||||
|
||||
# we're doing this because the home-manager recursive file linking implementation can't
|
||||
# merge from multiple sources. so we link each file explicitly, which is fine for all unique files
|
||||
generateSystemdFileLinks = files:
|
||||
listToAttrs (map (unitFile: {
|
||||
name = "${config.xdg.configHome}/systemd/user/${unitFile.key}";
|
||||
value = { source = unitFile.value.path; };
|
||||
}) files);
|
||||
generateSystemdFileLinks =
|
||||
files:
|
||||
listToAttrs (
|
||||
map (unitFile: {
|
||||
name = "${config.xdg.configHome}/systemd/user/${unitFile.key}";
|
||||
value = {
|
||||
source = unitFile.value.path;
|
||||
};
|
||||
}) files
|
||||
);
|
||||
|
||||
in {
|
||||
in
|
||||
{
|
||||
imports = [ ./options.nix ];
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.file = generateSystemdFileLinks allUnitFiles;
|
||||
|
||||
# if the length of builtQuadlets is 0, then we don't need register the activation script
|
||||
home.activation.podmanQuadletCleanup =
|
||||
lib.mkIf (lib.length builtQuadlets >= 1)
|
||||
(lib.hm.dag.entryAfter [ "reloadSystemd" ] activationCleanupScript);
|
||||
home.activation.podmanQuadletCleanup = lib.mkIf (lib.length builtQuadlets >= 1) (
|
||||
lib.hm.dag.entryAfter [ "reloadSystemd" ] activationCleanupScript
|
||||
);
|
||||
|
||||
services.podman.internal.builtQuadlets = listToAttrs (map (pkg: {
|
||||
name = (removePrefix "podman-" pkg.passthru.quadletData.serviceName) + "."
|
||||
+ pkg.passthru.quadletData.resourceType;
|
||||
value = pkg;
|
||||
}) builtQuadlets);
|
||||
services.podman.internal.builtQuadlets = listToAttrs (
|
||||
map (pkg: {
|
||||
name =
|
||||
(removePrefix "podman-" pkg.passthru.quadletData.serviceName)
|
||||
+ "."
|
||||
+ pkg.passthru.quadletData.resourceType;
|
||||
value = pkg;
|
||||
}) builtQuadlets
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue