def finalize_completion_bash(options: list[CompletionItem], resources: Path) -> str:
def to_bash_array(name: str, entries: Iterable[str]) -> str:
- return f"declare -a {name.replace('-', '_')}=(" + " ".join(shlex.quote(str(e)) for e in entries) + ")"
+ return f"{name.replace('-', '_')}=(" + " ".join(shlex.quote(str(e)) for e in entries) + ")"
def to_bash_hasharray(name: str, entries: Mapping[str, Union[str, int]]) -> str:
return (
- f"declare -A {name.replace('-', '_')}=(" +
+ f"{name.replace('-', '_')}=(" +
" ".join(f"[{shlex.quote(str(k))}]={shlex.quote(str(v))}" for k, v in entries.items()) + ")"
)
with io.StringIO() as c:
c.write(completion.read_text())
+ c.write("\n")
c.write(to_bash_array("_mkosi_options", options_by_key.keys()))
c.write("\n\n")
# SPDX-License-Identifier: LGPL-2.1-or-later
# shellcheck shell=bash
+declare -a _mkosi_options
+declare -A _mkosi_nargs
+declare -A _mkosi_choices
+declare -A _mkosi_compgen
+declare -a _mkosi_verbs
+
_mkosi_compgen_files() {
compgen -f -- "$1"
}