Source code for shoop.core.management.commands.shoop_makemessages
# This file is part of Shoop.
#
# Copyright (c) 2012-2016, Shoop Ltd. All rights reserved.
#
# This source code is licensed under the AGPLv3 license found in the
# LICENSE file in the root directory of this source tree.
"""
Makemessages helper for Shoop projects.
Runs Django's makemessages for django and djangojs domains with sane
defaults for Shoop projects (ignores and extensions).
"""
from __future__ import unicode_literals
from . import makemessages
IGNORES = ["node_modules", "bower_components", "static", "*tests"]
EXTENSIONS = ["py", "jinja"]
[docs]class Command(makemessages.Command):
help = __doc__
[docs] def add_arguments(self, parser):
class InterceptedParser(object):
def add_argument(self, *args, **kwargs):
if args[0] == "--domain":
return
elif args[0] == "--ignore":
kwargs["default"] = IGNORES
elif args[0] == "--no-obsolete":
kwargs["default"] = True
elif args[0] == "--no-location":
kwargs["default"] = True
elif args[0] == "--no-pot-date":
kwargs["default"] = True
parser.add_argument(*args, **kwargs)
if args[0].startswith("--no-") and kwargs.get("default"):
name = "--include-" + args[0][5:]
kwargs["default"] = False
kwargs["action"] = "store_false"
kwargs["help"] = "Opposite of " + args[0]
new_args = (name,) + args[1:]
parser.add_argument(*new_args, **kwargs)
super(Command, self).add_arguments(InterceptedParser())
[docs] def handle(self, *args, **options):
if not options.get("extensions"):
options["extensions"] = EXTENSIONS
self.stdout.write("Doing makemessages for django domain")
super(Command, self).handle(*args, domain="django", **options)
options.pop("extensions", None)
self.stdout.write("Doing makemessages for djangojs domain")
super(Command, self).handle(*args, domain="djangojs", **options)