Browse Source

Merge pull request #398 from msabramo/improve_completion_with_asterisk

Add group:* to completions list for groups
Mike Naberezny 11 years ago
parent
commit
d3b6300a28
2 changed files with 5 additions and 2 deletions
  1. 3 0
      supervisor/supervisorctl.py
  2. 2 2
      supervisor/tests/test_supervisorctl.py

+ 3 - 0
supervisor/supervisorctl.py

@@ -279,6 +279,8 @@ class Controller(cmd.Cmd):
         for info in self._get_complete_info():
         for info in self._get_complete_info():
             if ':' in text or info['name'] != info['group']:
             if ':' in text or info['name'] != info['group']:
                 processes.append('%s:%s' % (info['group'], info['name']))
                 processes.append('%s:%s' % (info['group'], info['name']))
+                if '%s:*' % info['group'] not in processes:
+                    processes.append('%s:*' % info['group'])
             else:
             else:
                 processes.append(info['name'])
                 processes.append(info['name'])
         return [ p + ' ' for p in processes if p.startswith(text) ]
         return [ p + ' ' for p in processes if p.startswith(text) ]
@@ -1162,6 +1164,7 @@ def main(args=None, options=None):
             delims = readline.get_completer_delims()
             delims = readline.get_completer_delims()
             delims = delims.replace(':', '') # "group:process" as one word
             delims = delims.replace(':', '') # "group:process" as one word
             delims = delims.replace('-', '') # names with "-" as one word
             delims = delims.replace('-', '') # names with "-" as one word
+            delims = delims.replace('*', '') # "group:process" as one word
             readline.set_completer_delims(delims)
             readline.set_completer_delims(delims)
 
 
             if options.history_file:
             if options.history_file:

+ 2 - 2
supervisor/tests/test_supervisorctl.py

@@ -193,7 +193,7 @@ class ControllerTests(unittest.TestCase):
         result = controller.complete('', 2, line='start ')
         result = controller.complete('', 2, line='start ')
         self.assertEqual(result, 'baz:baz_01 ')
         self.assertEqual(result, 'baz:baz_01 ')
         result = controller.complete('', 3, line='start ')
         result = controller.complete('', 3, line='start ')
-        self.assertEqual(result, None)
+        self.assertEqual(result, 'baz:* ')
 
 
     def test_complete_start_no_colon(self):
     def test_complete_start_no_colon(self):
         options = DummyClientOptions()
         options = DummyClientOptions()
@@ -213,7 +213,7 @@ class ControllerTests(unittest.TestCase):
         result = controller.complete('foo:', 0, line='start foo:')
         result = controller.complete('foo:', 0, line='start foo:')
         self.assertEqual(result, 'foo:foo ')
         self.assertEqual(result, 'foo:foo ')
         result = controller.complete('foo:', 1, line='start foo:')
         result = controller.complete('foo:', 1, line='start foo:')
-        self.assertEqual(result, None)
+        self.assertEqual(result, 'foo:* ')
 
 
     def test_complete_start_uncompletable(self):
     def test_complete_start_uncompletable(self):
         options = DummyClientOptions()
         options = DummyClientOptions()