From: Aleš Mrázek Date: Fri, 30 Sep 2022 12:02:36 +0000 (+0200) Subject: manager: pkg: rpm: completion files for kresctl utility X-Git-Tag: v6.0.0a1~12^2~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=14565d90ec09c3d9eda6bbf62aaf382ec6a38e7c;p=thirdparty%2Fknot-resolver.git manager: pkg: rpm: completion files for kresctl utility --- diff --git a/distro/pkg/rpm/knot-resolver.spec b/distro/pkg/rpm/knot-resolver.spec index 7edcfe3f7..11b7c98e6 100644 --- a/distro/pkg/rpm/knot-resolver.spec +++ b/distro/pkg/rpm/knot-resolver.spec @@ -229,6 +229,9 @@ mv %{buildroot}/%{_datadir}/doc/%{name}/* %{buildroot}/%{_pkgdocdir}/ pushd manager %py3_install install -m 644 -D etc/knot-resolver/config.yml %{buildroot}%{_sysconfdir}/knot-resolver/config.yml +install -m 644 -D shell-completion/kresctl.bash %{buildroot}%{_datarootdir}/bash-completion/completions/kresctl +install -m 644 -D shell-completion/kresctl.fish %{buildroot}%{_datarootdir}/fish/vendor_completions.d/kresctl.fish + popd %pre @@ -381,6 +384,8 @@ fi %{_sysconfdir}/knot-resolver/config.yml %{_unitdir}/knot-resolver.service %{_bindir}/kresctl +%{_datarootdir}/bash-completion/completions/kresctl +%{_datarootdir}/fish/vendor_completions.d/kresctl.fish %changelog * {{ now }} Jakub Ružička - {{ version }}-{{ release }} diff --git a/etc/meson.build b/etc/meson.build index b2e250b9f..2fbacf640 100644 --- a/etc/meson.build +++ b/etc/meson.build @@ -27,11 +27,8 @@ if install_root_keys ) endif - subdir('config') -subdir('shell-completion') - install_data( sources: etc_files, install_dir: etc_dir diff --git a/manager/shell-completion/kresctl.bash b/manager/shell-completion/kresctl.bash new file mode 100644 index 000000000..736391329 --- /dev/null +++ b/manager/shell-completion/kresctl.bash @@ -0,0 +1,22 @@ +#/usr/bin/env bash + +# completion function for the kresctl +_kresctl_completion() { + local cur prev opts + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + + # get options + opts=$(kresctl completion --bash "${COMP_WORDS}") + + if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then + COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) + return 0 + fi + + return 0 +} + +# use the bash default completion for other arguments +complete -o filenames -o nospace -o bashdefault -F _kresctl_completion kresctl \ No newline at end of file diff --git a/manager/shell-completion/kresctl.fish b/manager/shell-completion/kresctl.fish new file mode 100644 index 000000000..8fc75a8f3 --- /dev/null +++ b/manager/shell-completion/kresctl.fish @@ -0,0 +1,6 @@ +function __fish_git + set -l args (commandline -pco) + eval command kresctl $args +end + +complete -c kresctl -a '(_kresctl_completion)' -f \ No newline at end of file