diff options
author | William Hubbs <w.d.hubbs@gmail.com> | 2024-06-28 14:41:24 -0500 |
---|---|---|
committer | William Hubbs <w.d.hubbs@gmail.com> | 2024-06-28 14:41:24 -0500 |
commit | 917a7031d946c0b608517936fab0f54689167265 (patch) | |
tree | 382e93e293741fb114496e85dfa65ce213323a9a /bash-completion | |
parent | 4dfec917cc44b3337ebe0bfc82052c89944be0e0 (diff) |
remove the openrc-service-script bash completion
Bash completion has two official completion directories:
- completionsdir, a lazy loading mechanism
- compatdir, an eager loading mechanism
Modern style is to use lazy loading if possible. It is modern
technology, speeds up your shell by deferring loads, and is generally
recommended for applications to prefer by default. It requires you name
your completion script using the same name as the command to complete.
Every distro prefers you do this, but only because bash-completion
itself does.
The openrc-service-script completion doesn't provide a completion for a
command called openrc-service-script. It cannot use the lazy loading
mechanism and emits a warning in Gentoo's policy lints as a result.
Installing to the completionsdir is therefore a useless no-op. Better to
install nothing.
The compatdir is the correct location for completions that cannot be
lazy loaded and must be loaded at shell startup in order to correctly
register themselves for a globbed list of commands that can only be
ascertained dynamically at shell startup. The alternative is to have
every command that can be globbed install a symlink to
openrc-service-script, and install openrc-service-script to a third
location.
Diffstat (limited to 'bash-completion')
-rw-r--r-- | bash-completion/meson.build | 3 | ||||
-rw-r--r-- | bash-completion/openrc-service-script | 29 |
2 files changed, 0 insertions, 32 deletions
diff --git a/bash-completion/meson.build b/bash-completion/meson.build index 464a952a..be62d1ae 100644 --- a/bash-completion/meson.build +++ b/bash-completion/meson.build @@ -8,7 +8,4 @@ bash_completions = [ install_data(bash_completions, install_dir : get_option('datadir') / 'bash-completion/completions') - install_data( - 'openrc-service-script', - install_dir : get_option('sysconfdir') / 'bash_completion.d') endif diff --git a/bash-completion/openrc-service-script b/bash-completion/openrc-service-script deleted file mode 100644 index ec7707a4..00000000 --- a/bash-completion/openrc-service-script +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (c) 2017 The OpenRC Authors. -# See the Authors file at the top-level directory of this distribution and -# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS -# -# This file is part of OpenRC. It is subject to the license terms in -# the LICENSE file found in the top-level directory of this -# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE -# This file may not be copied, modified, propagated, or distributed -# except according to the terms contained in the LICENSE file. - -_openrc_service_script() -{ - local script="${COMP_WORDS[0]}" - local cur="${COMP_WORDS[$COMP_CWORD]}" - - if [[ ( -f "${script}" || -h "${script}" ) && -r "${script}" ]] \ - && [[ "$(head -n 1 "${script}")" =~ \#\!.*/openrc-run ]] - then - [[ $COMP_CWORD -gt 1 ]] && return 1 - COMPREPLY=($(opts="start stop status restart pause zap ineed needsme iuse usesme broken"; \ - eval "$(grep '^opts=' "${script}")"; echo "${opts}")) - [[ -n "$COMPREPLY" ]] || COMPREPLY=(start stop restart zap) - COMPREPLY=($(compgen -W "${COMPREPLY[*]}" -- "${cur}")) - else - COMPREPLY=($(compgen -o default -- "${cur}")) - fi - return 0 -} -complete -F _openrc_service_script */etc/init.d/* |