]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
completion: forward define (hash) arrays for bash completion 2779/head
authorJörg Behrmann <behrmann@physik.fu-berlin.de>
Wed, 24 Jul 2024 14:29:16 +0000 (16:29 +0200)
committerJörg Behrmann <behrmann@physik.fu-berlin.de>
Wed, 24 Jul 2024 15:00:32 +0000 (17:00 +0200)
mkosi/completion.py
mkosi/resources/completion.bash

index ed1df98c494f71499de70a8afda86a8486d15eac..ddd8769f76fe97a88797a99592a6e5dd7868adb6 100644 (file)
@@ -102,11 +102,11 @@ def collect_completion_arguments() -> list[CompletionItem]:
 
 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()) + ")"
         )
 
@@ -116,6 +116,7 @@ def finalize_completion_bash(options: list[CompletionItem], resources: Path) ->
 
     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")
index 82026d96292c2758c41ac37dbb282a527727702a..874922f81c695381cdc28ae60b80b2fd8b749c3f 100644 (file)
@@ -1,6 +1,12 @@
 # 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"
 }