show possible choices

This commit is contained in:
Isaac 2023-05-04 21:12:24 -07:00
parent 639e88262e
commit bbc3e9d717
No known key found for this signature in database
GPG Key ID: E69FB5A841448A48
1 changed files with 22 additions and 6 deletions

View File

@ -66,6 +66,15 @@ def bash_completion():
)
)
file_metavars = (
'FILENAME',
'PATH',
)
file_destinations = (
'config_paths'
)
def conditionally_emit_file_completion(action: Action):
'''
@ -74,15 +83,22 @@ def conditionally_emit_file_completion(action: Action):
Otherwise, return an empty string.
'''
if not action.metavar:
return ''
args = ' '.join(action.option_strings)
return dedent(
f'''
complete -c borgmatic -a '{args}' -Fr -n "__borgmatic_last_arg {args}"'''
)
if action.metavar in file_metavars or action.dest in file_destinations:
return dedent(
f'''
complete -c borgmatic -a '{args}' -Fr -n "__borgmatic_last_arg {args}"'''
)
if action.choices:
return dedent(
f'''
complete -c borgmatic -a '{' '.join(map(str, action.choices))}' -n "__borgmatic_last_arg {args}"'''
)
return ''
def dedent_strip_as_tuple(string: str):