all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [PATCH datacenter-manager 0/2] fix: cli: bash completions not working for CLI tools
@ 2026-02-06 16:35 Shan Shaji
  2026-02-06 16:35 ` [PATCH datacenter-manager 1/2] fix: cli: replace completion file suffix from `.bc` to `.bash` Shan Shaji
  2026-02-06 16:35 ` [PATCH datacenter-manager 2/2] fix: cli: remove completion files for service bins Shan Shaji
  0 siblings, 2 replies; 3+ messages in thread
From: Shan Shaji @ 2026-02-06 16:35 UTC (permalink / raw)
  To: pdm-devel

Shell completions for the CLIs were not working because the completion
files were installed with the `.bc` extension.

According to the bash-completion documentation [1], completion files should
either use the `.bash` extension or no extension at all. Debian currently ships
bash-completion 2.16 [2]. Since installing files without an extension is
planned to be deprecated in >=2.18, use the `.bash` extension for
compatibility with future versions.

documentaion quote:
> The completion filename for command foo in this directory should be foo.bash.
> Unsuffixed foo also works, but it is deprecated in >= 2.18.

Passing the `bashcomplete` argument to proxmox-datacenter-api and
proxmox-datacenter-privileged-api results in an error instead of generating
completions. Since these binaries are systemd-managed service executables
rather than user facing CLI tools, providing bash completion helpers might not
be useful. Since i was not sure why we had completions for the same
i added it as another patch. Please correct me if i have missed anything. 

[1]- https://github.com/scop/bash-completion/blob/06547b33f6de3b6f8ba730f00e7f585297a31b4f/README.md?plain=1#L184
[2]- https://packages.debian.org/en/trixie/bash-completion

Testing
=======

bash-completion: v2.16

I have tested by installing the completion files with .bash extension and
without any extension. In both cases, the completion worked correctly. 
 
Shan Shaji (2):
  fix: cli: replace completion file suffix from `.bc` to `.bash`
  fix: cli: remove completion files for service bins

 Makefile                                         | 4 ++--
 cli/completions/Makefile                         | 2 +-
 debian/proxmox-datacenter-manager-client.install | 2 +-
 debian/proxmox-datacenter-manager.install        | 8 ++------
 4 files changed, 6 insertions(+), 10 deletions(-)

-- 
2.47.3





^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH datacenter-manager 1/2] fix: cli: replace completion file suffix from `.bc` to `.bash`
  2026-02-06 16:35 [PATCH datacenter-manager 0/2] fix: cli: bash completions not working for CLI tools Shan Shaji
@ 2026-02-06 16:35 ` Shan Shaji
  2026-02-06 16:35 ` [PATCH datacenter-manager 2/2] fix: cli: remove completion files for service bins Shan Shaji
  1 sibling, 0 replies; 3+ messages in thread
From: Shan Shaji @ 2026-02-06 16:35 UTC (permalink / raw)
  To: pdm-devel

The completions were not working because of the file name extension of
the completion file. According to the `bash-completion` documentation,
completion file needs to have a `.bash` suffix or without any suffix.

documentation quote:
> The completion filename for command `foo` in this directory should be
> `foo.bash`. Unsuffixed foo also works, but it is deprecated in >= 2.18.

Since the .bash extension works on the current 2.16 bash-completion
version available in debian, replaced the `.bc` suffix with `.bash`

Signed-off-by: Shan Shaji <s.shaji@proxmox.com>
---
 Makefile                                         | 2 +-
 cli/completions/Makefile                         | 2 +-
 debian/proxmox-datacenter-manager-client.install | 2 +-
 debian/proxmox-datacenter-manager.install        | 8 ++++----
 4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/Makefile b/Makefile
index 91fe684..b10fed7 100644
--- a/Makefile
+++ b/Makefile
@@ -53,7 +53,7 @@ COMPILED_BINS := \
 	$(addprefix $(COMPILEDIR)/,$(USR_BIN) $(USR_SBIN) $(SERVICE_BIN) $(INTERNAL_SERVICE_BIN))
 
 # completion helper get generated on build
-BASH_COMPLETIONS := $(addsuffix .bc,$(USR_BIN) $(USR_SBIN) $(SERVICE_BIN))
+BASH_COMPLETIONS := $(addsuffix .bash,$(USR_BIN) $(USR_SBIN) $(SERVICE_BIN))
 ZSH_COMPLETIONS := $(addprefix _,$(USR_BIN) $(USR_SBIN) $(SERVICE_BIN))
 SHELL_COMPLETION_FILES := $(addprefix $(COMPLETION_DIR)/,$(BASH_COMPLETIONS) $(ZSH_COMPLETIONS))
 
diff --git a/cli/completions/Makefile b/cli/completions/Makefile
index 5972355..5e7b2f7 100644
--- a/cli/completions/Makefile
+++ b/cli/completions/Makefile
@@ -2,7 +2,7 @@
 all:
 
 # bash completion
-%.bc:
+%.bash:
 	@echo "creating bash completion definition for $*"
 	@printf '# $* bash completion\n\n' >$@.tmp
 	@printf "complete -C '$* bashcomplete' $*\n" >>$@.tmp
diff --git a/debian/proxmox-datacenter-manager-client.install b/debian/proxmox-datacenter-manager-client.install
index 1844173..eb9d782 100644
--- a/debian/proxmox-datacenter-manager-client.install
+++ b/debian/proxmox-datacenter-manager-client.install
@@ -1,4 +1,4 @@
 usr/bin/proxmox-datacenter-manager-client
-usr/share/bash-completion/completions/proxmox-datacenter-manager-client.bc
+usr/share/bash-completion/completions/proxmox-datacenter-manager-client.bash
 usr/share/man/man1/proxmox-datacenter-manager-client.1
 usr/share/zsh/vendor-completions/_proxmox-datacenter-manager-client
diff --git a/debian/proxmox-datacenter-manager.install b/debian/proxmox-datacenter-manager.install
index 499e07f..7942146 100644
--- a/debian/proxmox-datacenter-manager.install
+++ b/debian/proxmox-datacenter-manager.install
@@ -10,10 +10,10 @@ usr/libexec/proxmox/proxmox-datacenter-manager-daily-update
 usr/libexec/proxmox/proxmox-datacenter-privileged-api
 usr/sbin/pdmAtoB
 usr/sbin/proxmox-datacenter-manager-admin
-usr/share/bash-completion/completions/pdmAtoB.bc
-usr/share/bash-completion/completions/proxmox-datacenter-api.bc
-usr/share/bash-completion/completions/proxmox-datacenter-manager-admin.bc
-usr/share/bash-completion/completions/proxmox-datacenter-privileged-api.bc
+usr/share/bash-completion/completions/pdmAtoB.bash
+usr/share/bash-completion/completions/proxmox-datacenter-api.bash
+usr/share/bash-completion/completions/proxmox-datacenter-manager-admin.bash
+usr/share/bash-completion/completions/proxmox-datacenter-privileged-api.bash
 usr/share/man/man1/proxmox-datacenter-api.1
 usr/share/man/man1/proxmox-datacenter-manager-admin.1
 usr/share/man/man1/proxmox-datacenter-privileged-api.1
-- 
2.47.3





^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH datacenter-manager 2/2] fix: cli: remove completion files for service bins
  2026-02-06 16:35 [PATCH datacenter-manager 0/2] fix: cli: bash completions not working for CLI tools Shan Shaji
  2026-02-06 16:35 ` [PATCH datacenter-manager 1/2] fix: cli: replace completion file suffix from `.bc` to `.bash` Shan Shaji
@ 2026-02-06 16:35 ` Shan Shaji
  1 sibling, 0 replies; 3+ messages in thread
From: Shan Shaji @ 2026-02-06 16:35 UTC (permalink / raw)
  To: pdm-devel

Passing the `bashcomplete` argument to proxmox-datacenter-api and
proxmox-datacenter-privileged-api results in an error instead of
generating completions.

Since these binaries are systemd-managed service executables rather
than user facing CLI tools, providing bash completion helpers is not
useful.

Signed-off-by: Shan Shaji <s.shaji@proxmox.com>
---
 Makefile                                  | 4 ++--
 debian/proxmox-datacenter-manager.install | 4 ----
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/Makefile b/Makefile
index b10fed7..940a2e7 100644
--- a/Makefile
+++ b/Makefile
@@ -53,8 +53,8 @@ COMPILED_BINS := \
 	$(addprefix $(COMPILEDIR)/,$(USR_BIN) $(USR_SBIN) $(SERVICE_BIN) $(INTERNAL_SERVICE_BIN))
 
 # completion helper get generated on build
-BASH_COMPLETIONS := $(addsuffix .bash,$(USR_BIN) $(USR_SBIN) $(SERVICE_BIN))
-ZSH_COMPLETIONS := $(addprefix _,$(USR_BIN) $(USR_SBIN) $(SERVICE_BIN))
+BASH_COMPLETIONS := $(addsuffix .bash,$(USR_BIN) $(USR_SBIN))
+ZSH_COMPLETIONS := $(addprefix _,$(USR_BIN) $(USR_SBIN))
 SHELL_COMPLETION_FILES := $(addprefix $(COMPLETION_DIR)/,$(BASH_COMPLETIONS) $(ZSH_COMPLETIONS))
 
 tests ?= --workspace
diff --git a/debian/proxmox-datacenter-manager.install b/debian/proxmox-datacenter-manager.install
index 7942146..001d727 100644
--- a/debian/proxmox-datacenter-manager.install
+++ b/debian/proxmox-datacenter-manager.install
@@ -11,15 +11,11 @@ usr/libexec/proxmox/proxmox-datacenter-privileged-api
 usr/sbin/pdmAtoB
 usr/sbin/proxmox-datacenter-manager-admin
 usr/share/bash-completion/completions/pdmAtoB.bash
-usr/share/bash-completion/completions/proxmox-datacenter-api.bash
 usr/share/bash-completion/completions/proxmox-datacenter-manager-admin.bash
-usr/share/bash-completion/completions/proxmox-datacenter-privileged-api.bash
 usr/share/man/man1/proxmox-datacenter-api.1
 usr/share/man/man1/proxmox-datacenter-manager-admin.1
 usr/share/man/man1/proxmox-datacenter-privileged-api.1
 usr/share/man/man5/remotes.cfg.5
 usr/share/man/man5/views.cfg.5
 usr/share/zsh/vendor-completions/_pdmAtoB
-usr/share/zsh/vendor-completions/_proxmox-datacenter-api
 usr/share/zsh/vendor-completions/_proxmox-datacenter-manager-admin
-usr/share/zsh/vendor-completions/_proxmox-datacenter-privileged-api
-- 
2.47.3





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-02-06 16:35 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-02-06 16:35 [PATCH datacenter-manager 0/2] fix: cli: bash completions not working for CLI tools Shan Shaji
2026-02-06 16:35 ` [PATCH datacenter-manager 1/2] fix: cli: replace completion file suffix from `.bc` to `.bash` Shan Shaji
2026-02-06 16:35 ` [PATCH datacenter-manager 2/2] fix: cli: remove completion files for service bins Shan Shaji

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal