diff --git a/modules/system/settei/default.nix b/modules/system/settei/default.nix index ec13409..e0807da 100644 --- a/modules/system/settei/default.nix +++ b/modules/system/settei/default.nix @@ -15,6 +15,7 @@ (import ./sane-defaults.nix {inherit isLinux;}) (import ./flake-qol.nix {inherit perInput;}) ./user.nix + (import ./programs {inherit isLinux;}) ]; options.settei = with lib; { diff --git a/modules/system/settei/programs/default.nix b/modules/system/settei/programs/default.nix new file mode 100644 index 0000000..1c59d6e --- /dev/null +++ b/modules/system/settei/programs/default.nix @@ -0,0 +1,7 @@ +{isLinux}: { + _file = ./default.nix; + + imports = [ + (import ./podman.nix {inherit isLinux;}) + ]; +} diff --git a/modules/system/settei/programs/podman.nix b/modules/system/settei/programs/podman.nix new file mode 100644 index 0000000..ffb6e4c --- /dev/null +++ b/modules/system/settei/programs/podman.nix @@ -0,0 +1,34 @@ +{isLinux}: { + config, + lib, + pkgs, + ... +}: let + sharedConfig = { + environment.systemPackages = [pkgs.podman-compose]; + }; + + linuxConfig = lib.optionalAttrs isLinux { + virtualisation.podman = { + enable = true; + dockerCompat = lib.mkDefault true; + defaultNetwork.settings.dns_enabled = lib.mkDefault true; + }; + }; + + darwinConfig = lib.optionalAttrs (!isLinux) { + environment.systemPackages = [pkgs.podman]; + }; + + finalConfig = lib.mkMerge [ + sharedConfig + linuxConfig + darwinConfig + ]; +in { + _file = ./podman.nix; + + options.settei.programs.podman.enable = lib.mkEnableOption "Podman"; + + config = lib.mkIf config.settei.programs.podman.enable finalConfig; +}