Selaa lähdekoodia

Passing command around (execute_from_commandline should receive command as part of the full argv, to be consistent)

German M. Bravo 12 vuotta sitten
vanhempi
commit
b0aac9a47f
2 muutettua tiedostoa jossa 6 lisäystä ja 4 poistoa
  1. 3 2
      celery/bin/celery.py
  2. 3 2
      celery/bin/worker.py

+ 3 - 2
celery/bin/celery.py

@@ -86,9 +86,10 @@ class multi(Command):
     def get_options(self):
         return ()
 
-    def run_from_argv(self, prog_name, argv):
+    def run_from_argv(self, prog_name, argv, command=None):
         from celery.bin.multi import MultiTool
-        return MultiTool().execute_from_commandline(argv, prog_name)
+        argv.append("--cmd=%s worker --detach" % prog_name)
+        return MultiTool().execute_from_commandline([command] + argv, prog_name)
 
 
 class list_(Command):

+ 3 - 2
celery/bin/worker.py

@@ -146,8 +146,9 @@ class worker(Command):
     supports_args = False
 
     def run_from_argv(self, prog_name, argv=None, command=None):
-        argv = list(sys.argv) if argv is None else argv
-        self.maybe_detach(argv)
+        command = sys.argv[0] if command is None else command
+        argv = sys.argv[1:] if argv is None else argv
+        self.maybe_detach([command] + argv)
         return super(worker, self).run_from_argv(prog_name, argv, command)
 
     def maybe_detach(self, argv, dopts=['-D', '--detach']):