mirror of
https://github.com/nix-community/home-manager.git
synced 2026-01-11 01:19:32 +08:00
- restructure module from `podman-linux` to platform-agnostic `podman` - move linux-specific implementation to `modules/services/podman/linux/` - add darwin module with declarative machine management - implement launchd-based watchdog for auto-starting machines - maintains backward compatibility with existing linux functionality
24 lines
634 B
Nix
24 lines
634 B
Nix
{ lib }:
|
|
|
|
{
|
|
assertPlatform =
|
|
module: config: pkgs: platforms:
|
|
let
|
|
modulePath = lib.splitString "." module;
|
|
isEmpty = x: x == false || x == null || x == { } || x == [ ] || x == "";
|
|
in
|
|
{
|
|
assertion =
|
|
(isEmpty (lib.attrByPath modulePath null config))
|
|
|| (lib.elem pkgs.stdenv.hostPlatform.system platforms);
|
|
message =
|
|
let
|
|
platformsStr = lib.concatStringsSep "\n" (map (p: " - ${p}") (lib.sort (a: b: a < b) platforms));
|
|
in
|
|
''
|
|
The module ${module} does not support your platform. It only supports
|
|
|
|
${platformsStr}'';
|
|
};
|
|
}
|