diff options
author | Berker Peksag <berker.peksag@gmail.com> | 2014-08-15 23:02:22 +0300 |
---|---|---|
committer | Berker Peksag <berker.peksag@gmail.com> | 2014-08-15 23:02:22 +0300 |
commit | 051c728c6efa21493fd85bb7d07a8acf17a40e42 (patch) | |
tree | 42719faaf7311bd6a0682217eaef7d0dbcdc27a0 | |
parent | f3c1b6ff6d0faebd6eff272849babe26851b423b (diff) | |
download | mediagoblin-051c728c6efa21493fd85bb7d07a8acf17a40e42.tar.lz mediagoblin-051c728c6efa21493fd85bb7d07a8acf17a40e42.tar.xz mediagoblin-051c728c6efa21493fd85bb7d07a8acf17a40e42.zip |
Add an initial "gmg serve" implementation.
The CLI is similar to "paster serve".
-rw-r--r-- | mediagoblin/gmg_commands/__init__.py | 4 | ||||
-rw-r--r-- | mediagoblin/gmg_commands/serve.py | 63 |
2 files changed, 67 insertions, 0 deletions
diff --git a/mediagoblin/gmg_commands/__init__.py b/mediagoblin/gmg_commands/__init__.py index e0400897..79fb7701 100644 --- a/mediagoblin/gmg_commands/__init__.py +++ b/mediagoblin/gmg_commands/__init__.py @@ -59,6 +59,10 @@ SUBCOMMAND_MAP = { 'setup': 'mediagoblin.gmg_commands.deletemedia:parser_setup', 'func': 'mediagoblin.gmg_commands.deletemedia:deletemedia', 'help': 'Delete media entries'}, + 'serve': { + 'setup': 'mediagoblin.gmg_commands.serve:parser_setup', + 'func': 'mediagoblin.gmg_commands.serve:serve', + 'help': 'PasteScript replacement'}, # 'theme': { # 'setup': 'mediagoblin.gmg_commands.theme:theme_parser_setup', # 'func': 'mediagoblin.gmg_commands.theme:theme', diff --git a/mediagoblin/gmg_commands/serve.py b/mediagoblin/gmg_commands/serve.py new file mode 100644 index 00000000..44f54697 --- /dev/null +++ b/mediagoblin/gmg_commands/serve.py @@ -0,0 +1,63 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import print_function + + +class ServeCommand(object): + + def loadserver(self, server_spec, name, relative_to, **kw): + pass + + def loadapp(self, app_spec, name, relative_to, **kw): + pass + + def daemonize(self): + # TODO: pass to gunicorn if available + pass + + def restart_with_reloader(self): + pass + + def restart_with_monitor(self, reloader=False): + pass + + def run(self): + print('Running...') + + +def parser_setup(subparser): + subparser.add_argument('config', metavar='CONFIG_FILE') + subparser.add_argument('command', + choices=['start', 'stop', 'restart', 'status'], + nargs='?', default='start') + subparser.add_argument('-n', '--app-name', + dest='app_name', + metavar='NAME', + help="Load the named application (default main)") + subparser.add_argument('-s', '--server', + dest='server', + metavar='SERVER_TYPE', + help="Use the named server.") + subparser.add_argument('--reload', + dest='reload', + action='store_true', + help="Use auto-restart file monitor") + + +def serve(args): + serve_cmd = ServeCommand() # TODO: pass args to it + serve_cmd.run() |