From 0c1291d3fd6e7c0cd58884b11c0ecf5efb31e28d Mon Sep 17 00:00:00 2001 From: DashieTM Date: Sat, 2 Nov 2024 12:51:50 +0100 Subject: [PATCH] Update docker/podman config --- home/common.nix | 3 +- modules/programs/containers.nix | 79 +++++++++++++++++++++++++++++++ modules/programs/default.nix | 5 +- modules/programs/docker.nix | 32 ------------- modules/programs/fish.nix | 2 + modules/programs/homePackages.nix | 2 +- modules/programs/podman.nix | 34 ------------- 7 files changed, 85 insertions(+), 72 deletions(-) create mode 100644 modules/programs/containers.nix delete mode 100644 modules/programs/docker.nix delete mode 100644 modules/programs/podman.nix diff --git a/home/common.nix b/home/common.nix index 82dc607..4b01820 100644 --- a/home/common.nix +++ b/home/common.nix @@ -1,7 +1,6 @@ { config, lib, - options, ... }: let @@ -41,7 +40,7 @@ in }; nix = { - extraOptions = lib.mkIf (options ? config.sops.secrets.access.path) '' + extraOptions = lib.mkIf (config ? sops.secrets && config.sops.secrets ? access.path) '' !include ${config.sops.secrets.access.path} ''; }; diff --git a/modules/programs/containers.nix b/modules/programs/containers.nix new file mode 100644 index 0000000..6f9f605 --- /dev/null +++ b/modules/programs/containers.nix @@ -0,0 +1,79 @@ +{ + lib, + config, + options, + pkgs, + ... +}: +{ + options.mods.containers = { + variant = lib.mkOption { + default = ""; + example = "podman"; + type = lib.types.enum [ + "" + "podman" + "docker" + ]; + description = "Enables and configures a containerization solution: podman/docker"; + }; + podmanPackages = lib.mkOption { + default = with pkgs; [ + podman-tui + podman-compose + ]; + example = [ ]; + type = with lib.types; listOf package; + description = "Podman packages"; + }; + dockerPackages = lib.mkOption { + default = with pkgs; [ + docker-compose + ]; + example = [ ]; + type = with lib.types; listOf package; + description = "Docker packages"; + }; + combinedPackages = lib.mkOption { + default = with pkgs; [ + dive + ]; + example = [ ]; + type = with lib.types; listOf package; + description = "Container packages"; + }; + }; + config = ( + lib.optionalAttrs (options ? environment.systemPackages) { + environment.systemPackages = + (lib.lists.optionals ( + config.mods.containers.variant == "podman" + ) config.mods.containers.podmanPackages) + ++ (lib.lists.optionals ( + config.mods.containers.variant == "docker" + ) config.mods.containers.dockerPackages) + ++ (lib.lists.optionals ( + config.mods.containers.variant == "podman" || config.mods.containers.variant == "docker" + ) config.mods.containers.combinedPackages); + virtualisation = + if (config.mods.containers.variant == "podman") then + { + containers.enable = true; + podman = { + enable = true; + dockerCompat = true; + defaultNetwork.settings.dns_enabled = true; + }; + } + else if (config.mods.containers.variant == "docker") then + { + containers.enable = true; + docker = { + enable = true; + }; + } + else + { }; + } + ); +} diff --git a/modules/programs/default.nix b/modules/programs/default.nix index d4877fc..5c0769c 100644 --- a/modules/programs/default.nix +++ b/modules/programs/default.nix @@ -5,6 +5,7 @@ ./bluetooth.nix ./browser ./coding.nix + ./containers.nix ./drives.nix ./fish.nix ./flatpak.nix @@ -22,12 +23,11 @@ ./keepassxc.nix ./kitty.nix ./media.nix + ./mime.nix ./ncspot.nix ./nextcloud.nix ./oxi ./piper.nix - ./podman.nix - ./docker.nix ./printing.nix ./scripts.nix ./sddm.nix @@ -36,7 +36,6 @@ ./stylix.nix ./teams.nix ./virtualbox.nix - ./mime.nix ./xkb.nix ./xone.nix ./yazi diff --git a/modules/programs/docker.nix b/modules/programs/docker.nix deleted file mode 100644 index 7045050..0000000 --- a/modules/programs/docker.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - lib, - config, - options, - pkgs, - ... -}: -{ - # TODO make exclusive with docker - options.mods.docker = { - enable = lib.mkOption { - default = false; - example = false; - type = lib.types.bool; - description = "Enables and configures docker"; - }; - }; - config = lib.mkIf config.mods.docker.enable ( - lib.optionalAttrs (options ? virtualisation.docker) { - environment.systemPackages = with pkgs; [ - docker-compose - dive - ]; - virtualisation = { - containers.enable = true; - docker = { - enable = true; - }; - }; - } - ); -} diff --git a/modules/programs/fish.nix b/modules/programs/fish.nix index 4e04b76..41f394f 100644 --- a/modules/programs/fish.nix +++ b/modules/programs/fish.nix @@ -64,6 +64,8 @@ abbr --add cat 'bat' abbr --add find 'fd' abbr --add rm 'rip' + abbr --add cp 'fcp' + abbr --add cd 'z' set fish_greeting # pwd based on the value of _ZO_RESOLVE_SYMLINKS. diff --git a/modules/programs/homePackages.nix b/modules/programs/homePackages.nix index f3c1bfc..a887f47 100644 --- a/modules/programs/homePackages.nix +++ b/modules/programs/homePackages.nix @@ -87,7 +87,6 @@ if config.mods.homePackages.useDefaultPackages then with pkgs; [ - # TODO add fcp once fixed.... (lib.mkIf config.mods.homePackages.ncspot ncspot) (lib.mkIf config.mods.homePackages.vesktop vesktop) (lib.mkIf config.mods.homePackages.nextcloudClient nextcloud-client) @@ -120,6 +119,7 @@ pulseaudio libsForQt5.qt5ct qt6ct + fcp ripgrep rm-improved system-config-printer diff --git a/modules/programs/podman.nix b/modules/programs/podman.nix deleted file mode 100644 index 58441e4..0000000 --- a/modules/programs/podman.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ - lib, - config, - options, - pkgs, - ... -}: -{ - options.mods.podman = { - enable = lib.mkOption { - default = true; - example = false; - type = lib.types.bool; - description = "Enables and configures podman"; - }; - }; - config = lib.mkIf config.mods.podman.enable ( - lib.optionalAttrs (options ? virtualisation.podman) { - environment.systemPackages = with pkgs; [ - podman-tui - podman-compose - dive - ]; - virtualisation = { - containers.enable = true; - podman = { - enable = true; - dockerCompat = true; - defaultNetwork.settings.dns_enabled = true; - }; - }; - } - ); -}