From 6f339bd25bac4e81634db7f70af1a3b379d1d63e Mon Sep 17 00:00:00 2001 From: definfo Date: Sun, 28 Sep 2025 10:25:34 +0800 Subject: [PATCH] nixos/virtualisation/podman: add shell completions for podman dockerCompat This can fix shell completion for `podman.dockerCompat`. --- nixos/modules/virtualisation/podman/default.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/nixos/modules/virtualisation/podman/default.nix b/nixos/modules/virtualisation/podman/default.nix index b6ab82b1acb5..8145c099eead 100644 --- a/nixos/modules/virtualisation/podman/default.nix +++ b/nixos/modules/virtualisation/podman/default.nix @@ -10,11 +10,13 @@ let json = pkgs.formats.json { }; inherit (lib) mkOption types; + inherit (pkgs) stdenv; # Provides a fake "docker" binary mapping to podman dockerCompat = pkgs.runCommand "${cfg.package.pname}-docker-compat-${cfg.package.version}" { + nativeBuildInputs = [ pkgs.installShellFiles ]; outputs = [ "out" "man" @@ -31,7 +33,14 @@ let basename=$(basename $f | sed s/podman/docker/g) ln -s $f $man/share/man/man1/$basename done - ''; + '' + + lib.optionalString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + export HOME=$(mktemp -d) # work around `docker ` + installShellCompletion --cmd docker \ + --bash <($out/bin/docker completion bash) \ + --zsh <($out/bin/docker completion zsh) \ + --fish <($out/bin/docker completion fish) + ''; in {