#1107 frontend: add manage.py 'shell' command and 'run'
Merged 4 years ago by praiskup. Opened 4 years ago by praiskup.
Unknown source flask-3-wrappers  into  master

@@ -0,0 +1,33 @@

+ import click

+ import os

+ import subprocess

+ import sys

+ 

+ # keep backward compat with old flask's manage.py API

+ map_flask_commands = {'runserver': 'run'}

+ 

+ def function(ctx, args):

+     cmd = ctx.info_name

+     arguments = ['flask-3', map_flask_commands.get(cmd, cmd)]

+     arguments.extend(list(args))

+     if 'PYTHONPATH' in os.environ:

+         os.environ['PYTHONPATH'] += ":/usr/share/copr/coprs_frontend/"

+     else:

+         os.environ['PYTHONPATH'] = "/usr/share/copr/coprs_frontend/"

+     os.environ['FLASK_APP'] = "coprs:app"

+     sys.exit(subprocess.call(arguments))

+ 

+ def get_flask_wrapper_command(name):

+     argument = click.Argument(['args'], nargs=-1, type=click.UNPROCESSED)

+     command = click.Command(

+         name,

+         context_settings=dict(ignore_unknown_options=True, help_option_names=[]),

+         callback=click.pass_context(function),

+         params=[argument],

+         help='Wrapper around "/bin/flask-3 {}" command'.format(

+             map_flask_commands.get(name, name)),

+     )

+     if hasattr(command, 'hidden'):

+         # available on f30+ only (click v7.0)

+         command.hidden = name in map_flask_commands

+     return command

@@ -1,25 +0,0 @@

- import click

- import os

- import subprocess

- import sys

- 

- """

- Runs local server

- """

- @click.command(context_settings=dict(

-     ignore_unknown_options=True,

- ))

- @click.argument(

-     'args',

-     nargs=-1,

-     type=click.UNPROCESSED

- )

- def runserver(args):

-     arguments = ['flask-3', 'run']

-     arguments.extend(list(args))

-     if 'PYTHONPATH' in os.environ:

-         os.environ['PYTHONPATH'] += ":/usr/share/copr/coprs_frontend/"

-     else:

-         os.environ['PYTHONPATH'] = "/usr/share/copr/coprs_frontend/"

-     os.environ['FLASK_APP'] = "coprs:app"

-     subprocess.check_call(arguments)

@@ -6,7 +6,7 @@

  import pipes

  import importlib

  import click

- import commands.runserver

+ from commands.flask3_wrapper import get_flask_wrapper_command

  import commands.test

  import commands.create_sqlite_file

  import commands.create_db
@@ -45,7 +45,6 @@

  

  commands_list =	[

      # General commands

-     "runserver",

      "test",

  

      # Database commands
@@ -88,5 +87,9 @@

      command_func = getattr(getattr(commands, command), command)

      app.cli.add_command(command_func)

  

+ app.cli.add_command(get_flask_wrapper_command('runserver'))

+ app.cli.add_command(get_flask_wrapper_command('run'))

+ app.cli.add_command(get_flask_wrapper_command('shell'))

+ 

  if __name__ == "__main__":

      app.cli()

But still keep the 'runserver' backward compatibility command, it is
mentioned in docs and blog posts.

rebased onto a2fcbc7

4 years ago

Testsuite failed => I added a fix for F29.

Since I only replaced:

+ command.hidden = True

With

+     if hasattr(command, 'hidden'):
+         # available on f30+ only (click v7.0)
+         command.hidden = name in map_flask_commands

I consider this OK to merge (acked by one +1), but giving it a day more for
review.

Commit 3f91fbf fixes this pull-request

Pull-Request has been merged by praiskup

4 years ago