For context, this is how it looks on stable branch, before the change to gearbox "broke" it:
  $ paster celeryd development.ini -h
  Usage: paster celeryd [options] CONFIG_FILE [celeryd options...]

Also, looking more into it, it seems like the full_cmd_name proposed previously is the same as click.get_current_context().command_path ?

But celery likes to get the executable name separate. The approach of "hardcoding" the subcommand and options seems fine, but it seems like 'celery-run' is better as a part of the 'command', and we can let celery / optparse use the default prog_name.

So how about making this:

# HG changeset patch
# User Thomas De Schampheleire <thomas.de_schamphele...@nokia.com>
# Date 1542922034 -3600
#      Thu Nov 22 22:27:14 2018 +0100
# Node ID a4c3a76baa715e2d0371cfdec6df2a0d927e37f9
# Parent  2917d2be0106c5b26a280910b5e54bcad66bb747
cli: fix celery-run usage text

Make sure that the help text and error messages from Celery (e.g. from
'kallithea-cli celery-run -c my.ini -- --help' or '-- -xyz') contain a valid
'Usage:' string.

Without these changes, the usage string will use the arbitrary description from
2c3d30095d5e and a full path:
    Usage: kallithea celery worker .../bin/kallithea-cli [options]

With the changes, it becomes:
    Usage: kallithea-cli celery-run -c CONFIG_FILE -- [options]

Click will let optparse find 'kallithea-cli' from argv[0]. The command part
'celery-run -c CONFIG_FILE --' could perhaps be found with Click introspection,
but it is simpler and perhaps equally reliable to make it explicit.

diff --git a/kallithea/bin/kallithea_cli_celery.py b/kallithea/bin/kallithea_cli_celery.py
--- a/kallithea/bin/kallithea_cli_celery.py
+++ b/kallithea/bin/kallithea_cli_celery.py
@@ -36,4 +36,4 @@ def celery_run(celery_args):

     from kallithea.lib import celerypylons
     cmd = celerypylons.worker.worker(celerypylons.app)
-    return cmd.run_from_argv('kallithea celery worker', list(celery_args))
+    return cmd.run_from_argv(None, command='celery-run -c CONFIG_FILE --', argv=list(celery_args))

_______________________________________________
kallithea-general mailing list
kallithea-general@sfconservancy.org
https://lists.sfconservancy.org/mailman/listinfo/kallithea-general

Reply via email to