Parcourir la source

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

Ask Solem il y a 14 ans
Parent
commit
bba695e5ba
4 fichiers modifiés avec 10 ajouts et 0 suppressions
  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 = ''
     version = celery.__version__
     option_list = ()
+    supports_args = True
     preload_options = (
             Option("--app",
                     default=None, action="store", dest="app",
@@ -41,6 +42,12 @@ class Command(object):
 
     def handle_argv(self, 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))
 
     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):
+    supports_args = False
 
     def run(self, detach=False, logfile=None, pidfile=None, uid=None,
             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):
     namespace = "celeryd"
     enable_config_from_cmdline = True
+    supports_args = False
 
     def run(self, *args, **kwargs):
         kwargs.pop("app", None)

+ 1 - 0
celery/bin/celeryev.py

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