浏览代码

make more precise, fix the version check fn

Isaac 2 年之前
父节点
当前提交
25b3db72a0
共有 1 个文件被更改,包括 8 次插入4 次删除
  1. 8 4
      borgmatic/commands/completion.py

+ 8 - 4
borgmatic/commands/completion.py

@@ -64,25 +64,29 @@ def fish_completion():
     borgmatic's command-line argument parsers.
     '''
     top_level_parser, subparsers = arguments.make_parsers()
-    global_flags = parser_flags(top_level_parser)
     actions = ' '.join(subparsers.choices.keys())
 
     # Avert your eyes.
     return '\n'.join(
         (
             'function __borgmatic_check_version',
-            '    set this_script (status current-filename)',
+            '    set this_script (cat (status current-filename) 2> /dev/null)',
             '    set installed_script (borgmatic --fish-completion 2> /dev/null)',
             '    if [ "$this_script" != "$installed_script" ] && [ "$installed_script" != "" ]',
             '        echo "{}"'.format(upgrade_message('fish', 'borgmatic --fish-completion | sudo tee (status current-filename)', '(status current-filename)')),
             '    end',
             'end',
+            '__borgmatic_check_version &',
         ) + tuple(
-            '''complete -c borgmatic -n '__borgmatic_check_version' -a '%s' -d %s -f'''
+            '''complete -c borgmatic -a '%s' -d %s -f'''
             % (action, shlex.quote(subparser.description))
             for action, subparser in subparsers.choices.items()
         ) + (
             'complete -c borgmatic -a "%s" -d "borgmatic actions" -f' % actions,
-            'complete -c borgmatic -a "%s" -d "borgmatic global flags" -f' % global_flags,
+        ) + tuple(
+            '''complete -c borgmatic -a '%s' -d %s -f'''
+            % (option, shlex.quote(action.help))
+            for action in top_level_parser._actions
+            for option in action.option_strings
         )
     )