Skip to content

Commit

Permalink
Create openqa-cli-bash-completion package
Browse files Browse the repository at this point in the history
Provide openqa-cli bash completion for openqa-cli as a package when openQA is
install and bash is used.

Signed-off-by: Ioannis Bonatakis <[email protected]>
Signed-off-by: ybonatakis <[email protected]>
Signed-off-by: Ioannis Bonatakis <[email protected]>
Signed-off-by: ybonatakis <[email protected]>
  • Loading branch information
b10n1k committed Dec 9, 2024
1 parent e4f206f commit d52a34f
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 12 deletions.
11 changes: 11 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,17 @@ install-generic:
ln -s ../postgresql.service "$(DESTDIR)"/usr/lib/systemd/system/openqa-scheduler.service.requires/postgresql.service
install -d -m 755 "$(DESTDIR)"/usr/lib/systemd/system/openqa-websockets.service.requires
ln -s ../postgresql.service "$(DESTDIR)"/usr/lib/systemd/system/openqa-websockets.service.requires/postgresql.service
install -D -m 644 contrib/completions/openqa-cli-completion.bash "$(DESTDIR)"/usr/share//bash-completion/completions/openqa-cli
install -D -m 644 contrib/completions/openqa-cli-completion.zsh "$(DESTDIR)"/usr/share/zsh/site-functions/_openqa-cli
if [ "$(SHELL)" = "/bin/bash" ] || [ "$(SHELL)" = "/usr/bin/bash" ]; then \
echo "source $(DESTDIR)/usr/share/bash-completion/completions/openqa-cli" >> "$(HOME)/.bashrc"; \
elif [ "$(SHELL)" = "/bin/zsh" ] || [ "$(SHELL)" = "/usr/bin/zsh" ]; then \
echo "fpath+=($(DESTDIR)/usr/share/zsh/site-functions)" >> "$(HOME)/.zshrc"; \
echo "autoload -Uz compinit && compinit" >> "$(HOME)/.zshrc"; \
else \
echo "Unsupported shell: $(SHELL). Skipping completion setup."; \
fi

#
# install openQA apparmor profile
install -d -m 755 "$(DESTDIR)"/etc/apparmor.d
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#!/usr/bin/env bash

_openqa_cli_completions() {
local cur prev subcommands main_options api_options archive_options monitor_options schedule_options
cur="${COMP_WORDS[COMP_CWORD]}"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/env zsh
#compdef openqa-cli

_openqa_cli_completions() {
local curcontext="$curcontext" state line
Expand Down Expand Up @@ -62,10 +62,10 @@ _openqa_cli_completions() {
_arguments '*:option:->options' $main_options $archive_options
;;
monitor)
_arguments '*:option:->options' $main_options $archive_options
_arguments '*:option:->options' $main_options $monitor_options
;;
schedule)
_arguments '*:option:->options' $main_options $archive_options
_arguments '*:option:->options' $main_options $schedule_options
;;
*)
_values 'subcommand' api archive monitor schedule
Expand Down
23 changes: 23 additions & 0 deletions dist/rpm/openQA.spec
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,20 @@ Use this package to install munin scripts that allow to monitor some openQA
statistics.
%endif

%package client-bash-completion
Summary: Bash Completion for %{name}
Requires: bash-completion
Supplements: (%{name}-client and bash)

%description client-bash-completion
The official bash completion script for openqa-cli.

%package client-zsh-completion
Summary: Zsh Completion for %{name}
Supplements: (%{name}-client and zsh)

%description client-zsh-completion
The official zsh completion script for openqa-cli.

%prep
%setup -q
Expand Down Expand Up @@ -408,6 +422,10 @@ install -m 644 contrib/munin/config/minion.config %{buildroot}/%{_sysconfdir}/mu
install -m 755 contrib/munin/utils/munin-mail %{buildroot}/%{_datadir}/openqa/script/munin-mail
%endif

# completion
install -Dm 0644 contrib/completions/openqa-cli-completion.bash %{buildroot}%{_datadir}/bash-completion/completions/openqa-cli
install -Dm 0644 contrib/completions/openqa-cli-completion.zsh %{buildroot}%{_datadir}/zsh/site-functions/_openqa-cli

cd %{buildroot}
grep -rl %{_bindir}/env . | while read file; do
sed -e 's,%{_bindir}/env perl,%{_bindir}/perl,' -i $file
Expand Down Expand Up @@ -673,6 +691,11 @@ fi
%files devel
%endif

%files client-bash-completion
%{_datadir}/bash-completion/completions/openqa-cli
%files client-zsh-completion
%{_datadir}/zsh/site-functions/_openqa-cli

%files common
%dir %{_datadir}/openqa
%{_datadir}/openqa/lib
Expand Down
10 changes: 3 additions & 7 deletions docs/UsersGuide.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -963,13 +963,9 @@ without needing to install openQA itself. Call `openqa-cli --help` for help.
The sub-commands provide further help, e.g. `openqa-cli api --help` contains
a lot of examples.

`openqa-cli` supports auto completion for `bash` and `zsh`.
If you use `bash` run or add the line below on your `.bashrc` profile.

[source,sh]
----
source openqa-cli-completion.bash
----
`openqa-cli` supports auto completion for `bash` and `zsh` with openSUSE/SLE.
We distribute two packages `openQA-client-bash-completion` and
`openQA-client-zsh-completion` as part of openQA-client.

This section focuses on particular API use-cases. Checkout the
<<Client.asciidoc#client,openQA client>> section for further information about
Expand Down

0 comments on commit d52a34f

Please sign in to comment.