Generalize "gmg theme assetlink" -> "gmg assetlink" and cover both theme and plugins

We've moved the module... probably I'll re-add theme just to give a
warning that this is deprecated.

This commit sponsored by Kevin Williams.  Thank you!
This commit is contained in:
Christopher Allan Webber 2013-05-23 09:52:57 -05:00
parent bdd23c0eae
commit 6afc8364e0
2 changed files with 29 additions and 52 deletions

View File

@ -41,11 +41,15 @@ SUBCOMMAND_MAP = {
'setup': 'mediagoblin.gmg_commands.dbupdate:dbupdate_parse_setup', 'setup': 'mediagoblin.gmg_commands.dbupdate:dbupdate_parse_setup',
'func': 'mediagoblin.gmg_commands.dbupdate:dbupdate', 'func': 'mediagoblin.gmg_commands.dbupdate:dbupdate',
'help': 'Set up or update the SQL database'}, 'help': 'Set up or update the SQL database'},
'theme': { 'assetlink': {
'setup': 'mediagoblin.gmg_commands.theme:theme_parser_setup', 'setup': 'mediagoblin.gmg_commands.assetlink:assetlink_parser_setup',
'func': 'mediagoblin.gmg_commands.theme:theme', 'func': 'mediagoblin.gmg_commands.assetlink:assetlink',
'help': 'Theming commands', 'help': 'Link assets for themes and plugins for static serving'},
} # 'theme': {
# 'setup': 'mediagoblin.gmg_commands.theme:theme_parser_setup',
# 'func': 'mediagoblin.gmg_commands.theme:theme',
# 'help': 'Theming commands',
# }
## These might be useful, mayyyybe, but don't really work anymore ## These might be useful, mayyyybe, but don't really work anymore
## due to mongo change and the "versatility" of sql options. ## due to mongo change and the "versatility" of sql options.

View File

@ -16,6 +16,7 @@
import os import os
from mediagoblin import mg_globals
from mediagoblin.init import setup_global_and_app_config from mediagoblin.init import setup_global_and_app_config
from mediagoblin.gmg_commands import util as commands_util from mediagoblin.gmg_commands import util as commands_util
from mediagoblin.tools.theme import register_themes from mediagoblin.tools.theme import register_themes
@ -24,22 +25,23 @@ from mediagoblin.tools.common import simple_printer
from mediagoblin.tools import pluginapi from mediagoblin.tools import pluginapi
def theme_parser_setup(subparser): def assetlink_parser_setup(subparser):
theme_subparsers = subparser.add_subparsers( # theme_subparsers = subparser.add_subparsers(
dest=u"subcommand", # dest=u"subcommand",
help=u'Theme sub-commands') # help=u'Assetlink options')
# Install command # # Install command
install_parser = theme_subparsers.add_parser( # install_parser = theme_subparsers.add_parser(
u'install', help=u'Install a theme to this mediagoblin instance') # u'install', help=u'Install a theme to this mediagoblin instance')
install_parser.add_argument( # install_parser.add_argument(
u'themefile', help=u'The theme archive to be installed') # u'themefile', help=u'The theme archive to be installed')
theme_subparsers.add_parser( # theme_subparsers.add_parser(
u'assetlink', # u'assetlink',
help=( # help=(
u"Link the currently installed theme's assets " # u"Link the currently installed theme's assets "
u"to the served theme asset directory")) # u"to the served theme asset directory"))
pass
########### ###########
@ -132,47 +134,18 @@ def link_plugin_assets(plugin_static, plugins_link_dir, printer=simple_printer):
link_dir)) link_dir))
def install_theme(install_dir, themefile): def assetlink(args):
pass # TODO ;)
#############
# Subcommands
#############
def assetlink_command(args):
""" """
Link the asset directory of the currently installed theme Link the asset directory of the currently installed theme
""" """
global_config, app_config = setup_global_and_app_config(args.conf_file) mgoblin_app = commands_util.setup_app(args)
theme_registry, current_theme = register_themes(app_config) app_config = mg_globals.app_config
# link theme # link theme
link_theme_assets(current_theme, app_config['theme_linked_assets_dir']) link_theme_assets(mgoblin_app.current_theme, app_config['theme_linked_assets_dir'])
# Set up the app specifically so we can access the plugin infrastructure
commands_util.setup_app(args)
# link plugin assets # link plugin assets
## ... probably for this we need the whole application initialized ## ... probably for this we need the whole application initialized
for plugin_static in pluginapi.hook_runall("static_setup"): for plugin_static in pluginapi.hook_runall("static_setup"):
link_plugin_assets( link_plugin_assets(
plugin_static, app_config['plugin_linked_assets_dir']) plugin_static, app_config['plugin_linked_assets_dir'])
def install_command(args):
"""
Handle the 'install this theme' subcommand
"""
global_config, app_config = setup_global_and_app_config(args.conf_file)
install_dir = app_config['theme_install_dir']
install_theme(install_dir, args.themefile)
SUBCOMMANDS = {
'assetlink': assetlink_command,
'install': install_command}
def theme(args):
SUBCOMMANDS[args.subcommand](args)