Cmds: Add argcomplete support

argcomplete takes the arguments added to argparse, and builds bash
completion with it. Add it to all Cmds based executables.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2025-07-11 10:43:47 +02:00
commit 1e16c0ffb1
2 changed files with 3 additions and 2 deletions

View file

@ -14,7 +14,7 @@ jw-maintainer = jan
libname = none libname = none
[pkg.requires.os] [pkg.requires.os]
run = mypy, python3-magic, python3-termcolor, python3-pytimeparse run = mypy, python3-magic, python3-termcolor, python3-pytimeparse, python3-argcomplete
[pkg.requires.jw] [pkg.requires.jw]
devel = jw-python-run = VERSION-REVISION, jw-build-devel = VERSION devel = jw-python-run = VERSION-REVISION, jw-build-devel = VERSION

View file

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from typing import Optional from typing import Optional
import os, sys, argparse, importlib, inspect, re, pickle, asyncio, cProfile import os, sys, argcomplete, argparse, importlib, inspect, re, pickle, asyncio, cProfile
from argparse import ArgumentParser from argparse import ArgumentParser
import jwutils import jwutils
@ -91,6 +91,7 @@ class Cmds: # export
self.__add_cmd_to_parser(cmd, subparsers) self.__add_cmd_to_parser(cmd, subparsers)
async def __run(self, argv=None): async def __run(self, argv=None):
argcomplete.autocomplete(self.__parser)
self.args = self.__parser.parse_args(args=argv) self.args = self.__parser.parse_args(args=argv)
set_flags(self.args.log_flags) set_flags(self.args.log_flags)
set_level(self.args.log_level) set_level(self.args.log_level)