Explorar o código

Show proper error message for commands that doesn't support positional args

Ask Solem %!s(int64=14) %!d(string=hai) anos
pai
achega
bba695e5ba
Modificáronse 4 ficheiros con 10 adicións e 0 borrados
  1. 7 0
      celery/bin/base.py
  2. 1 0
      celery/bin/celerybeat.py
  3. 1 0
      celery/bin/celeryd.py
  4. 1 0
      celery/bin/celeryev.py

+ 7 - 0
celery/bin/base.py

@@ -10,6 +10,7 @@ class Command(object):
     args = ''
     args = ''
     version = celery.__version__
     version = celery.__version__
     option_list = ()
     option_list = ()
+    supports_args = True
     preload_options = (
     preload_options = (
             Option("--app",
             Option("--app",
                     default=None, action="store", dest="app",
                     default=None, action="store", dest="app",
@@ -41,6 +42,12 @@ class Command(object):
 
 
     def handle_argv(self, prog_name, argv):
     def handle_argv(self, prog_name, argv):
         options, args = self.parse_options(prog_name, argv)
         options, args = self.parse_options(prog_name, argv)
+        if not self.supports_args and args:
+            sys.stderr.write(
+                "\nUnrecognized command line arguments: %r\n" % (
+                    ", ".join(args), ))
+            sys.stderr.write("\nTry --help?\n")
+            sys.exit(1)
         return self.run(*args, **vars(options))
         return self.run(*args, **vars(options))
 
 
     def run(self, *args, **options):
     def run(self, *args, **options):

+ 1 - 0
celery/bin/celerybeat.py

@@ -27,6 +27,7 @@ from celery.platforms import create_daemon_context
 
 
 
 
 class BeatCommand(Command):
 class BeatCommand(Command):
+    supports_args = False
 
 
     def run(self, detach=False, logfile=None, pidfile=None, uid=None,
     def run(self, detach=False, logfile=None, pidfile=None, uid=None,
             gid=None, umask=None, working_directory=None, **kwargs):
             gid=None, umask=None, working_directory=None, **kwargs):

+ 1 - 0
celery/bin/celeryd.py

@@ -84,6 +84,7 @@ from celery.bin.base import Command, Option
 class WorkerCommand(Command):
 class WorkerCommand(Command):
     namespace = "celeryd"
     namespace = "celeryd"
     enable_config_from_cmdline = True
     enable_config_from_cmdline = True
+    supports_args = False
 
 
     def run(self, *args, **kwargs):
     def run(self, *args, **kwargs):
         kwargs.pop("app", None)
         kwargs.pop("app", None)

+ 1 - 0
celery/bin/celeryev.py

@@ -6,6 +6,7 @@ from celery.platforms import create_daemon_context
 
 
 
 
 class EvCommand(Command):
 class EvCommand(Command):
+    supports_args = False
 
 
     def run(self, dump=False, camera=None, frequency=1.0, maxrate=None,
     def run(self, dump=False, camera=None, frequency=1.0, maxrate=None,
             loglevel="INFO", logfile=None, prog_name="celeryev",
             loglevel="INFO", logfile=None, prog_name="celeryev",