Break the asset linking code off into a reusable function
In the future, the install command should be able to use that as well.
This commit is contained in:
parent
35a24fc263
commit
3da44aeba1
@ -18,6 +18,8 @@ import os
|
|||||||
|
|
||||||
from mediagoblin.init import setup_global_and_app_config
|
from mediagoblin.init import setup_global_and_app_config
|
||||||
from mediagoblin.tools.theme import register_themes
|
from mediagoblin.tools.theme import register_themes
|
||||||
|
from mediagoblin.tools.translate import pass_to_ugettext as _
|
||||||
|
from mediagoblin.tools.common import simple_printer
|
||||||
|
|
||||||
|
|
||||||
def theme_parser_setup(subparser):
|
def theme_parser_setup(subparser):
|
||||||
@ -31,19 +33,6 @@ def theme_parser_setup(subparser):
|
|||||||
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')
|
||||||
|
|
||||||
# # Uninstall command
|
|
||||||
# theme_subparsers.add_parser(
|
|
||||||
# u'uninstall',
|
|
||||||
# help=u'Uninstall a theme... will default to the current theme.')
|
|
||||||
|
|
||||||
# # List command
|
|
||||||
# theme_subparsers.add_parser(
|
|
||||||
# u'list', help=u'List installed themes')
|
|
||||||
|
|
||||||
# Set theme command
|
|
||||||
|
|
||||||
# Link theme assets command
|
|
||||||
|
|
||||||
theme_subparsers.add_parser(
|
theme_subparsers.add_parser(
|
||||||
u'assetlink',
|
u'assetlink',
|
||||||
help=(
|
help=(
|
||||||
@ -51,18 +40,23 @@ def theme_parser_setup(subparser):
|
|||||||
u"to the served theme asset directory"))
|
u"to the served theme asset directory"))
|
||||||
|
|
||||||
|
|
||||||
def assetlink(args):
|
###########
|
||||||
|
# Utilities
|
||||||
|
###########
|
||||||
|
|
||||||
|
def link_assets(theme, link_dir, printer=simple_printer):
|
||||||
"""
|
"""
|
||||||
Link the asset directory of the currently installed theme
|
Returns a list of string of text telling the user what we did
|
||||||
|
which should be printable.
|
||||||
"""
|
"""
|
||||||
global_config, app_config = setup_global_and_app_config(args.conf_file)
|
link_dir = link_dir.rstrip(os.path.sep)
|
||||||
theme_registry, current_theme = register_themes(app_config)
|
|
||||||
link_dir = app_config['theme_linked_assets_dir'].rstrip(os.path.sep)
|
|
||||||
link_parent_dir = os.path.split(link_dir.rstrip(os.path.sep))[0]
|
link_parent_dir = os.path.split(link_dir.rstrip(os.path.sep))[0]
|
||||||
|
|
||||||
if current_theme is None:
|
results = []
|
||||||
print "Cannot link theme... no theme set"
|
|
||||||
return
|
if theme is None:
|
||||||
|
printer(_("Cannot link theme... no theme set\n"))
|
||||||
|
return results
|
||||||
|
|
||||||
def _maybe_unlink_link_dir():
|
def _maybe_unlink_link_dir():
|
||||||
"""unlink link directory if it exists"""
|
"""unlink link directory if it exists"""
|
||||||
@ -71,13 +65,14 @@ def assetlink(args):
|
|||||||
os.unlink(link_dir)
|
os.unlink(link_dir)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return False
|
return results
|
||||||
|
|
||||||
if current_theme.get('assets_dir') is None:
|
if theme.get('assets_dir') is None:
|
||||||
print "No asset directory for this theme"
|
printer(_("No asset directory for this theme\n"))
|
||||||
if _maybe_unlink_link_dir():
|
if _maybe_unlink_link_dir():
|
||||||
print "However, old link directory symlink found; removed."
|
printer(
|
||||||
return
|
_("However, old link directory symlink found; removed.\n"))
|
||||||
|
return results
|
||||||
|
|
||||||
_maybe_unlink_link_dir()
|
_maybe_unlink_link_dir()
|
||||||
|
|
||||||
@ -86,14 +81,39 @@ def assetlink(args):
|
|||||||
os.makedirs(link_parent_dir)
|
os.makedirs(link_parent_dir)
|
||||||
|
|
||||||
os.symlink(
|
os.symlink(
|
||||||
current_theme['assets_dir'].rstrip(os.path.sep),
|
theme['assets_dir'].rstrip(os.path.sep),
|
||||||
link_dir)
|
link_dir)
|
||||||
print "Linked the theme's asset directory:\n %s\nto:\n %s" % (
|
printer("Linked the theme's asset directory:\n %s\nto:\n %s\n" % (
|
||||||
current_theme['assets_dir'], link_dir)
|
theme['assets_dir'], link_dir))
|
||||||
|
|
||||||
|
|
||||||
|
def install_theme():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
#############
|
||||||
|
# Subcommands
|
||||||
|
#############
|
||||||
|
|
||||||
|
def assetlink_command(args):
|
||||||
|
"""
|
||||||
|
Link the asset directory of the currently installed theme
|
||||||
|
"""
|
||||||
|
global_config, app_config = setup_global_and_app_config(args.conf_file)
|
||||||
|
theme_registry, current_theme = register_themes(app_config)
|
||||||
|
link_assets(current_theme, app_config['theme_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)
|
||||||
|
|
||||||
|
|
||||||
SUBCOMMANDS = {
|
SUBCOMMANDS = {
|
||||||
'assetlink': assetlink}
|
'assetlink': assetlink_command,
|
||||||
|
'install': install_command}
|
||||||
|
|
||||||
|
|
||||||
def theme(args):
|
def theme(args):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user