]> Frank Brehm's Git Trees - pixelpark/puppetmaster-webhooks.git/commitdiff
Setting locale
authorFrank Brehm <frank.brehm@pixelpark.com>
Wed, 15 Feb 2017 10:55:12 +0000 (11:55 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Wed, 15 Feb 2017 10:55:12 +0000 (11:55 +0100)
lib/webhooks/r10k.py

index 10aeef46950b9dcab17e7f482992e0676f45cc32..2bea9b10f16dea16c8afb3b5e828821e4e29df12 100644 (file)
@@ -14,6 +14,7 @@ import logging
 import re
 import textwrap
 import datetime
+import locale
 
 # Third party modules
 import yaml
@@ -27,8 +28,6 @@ from webhooks.base_app import BaseHookApp
 
 __version__ = webhooks.__version__
 LOG = logging.getLogger(__name__)
-DEFAULT_EMAIL = 'frank.brehm@pixelpark.com'
-DEFAULT_SENDER = 'Puppetmaster <{}>'.format(DEFAULT_EMAIL)
 
 
 # =============================================================================
@@ -47,6 +46,8 @@ class R10kHookApp(BaseHookApp):
             the local repository and deploys it with r10k.
             ''').strip()
 
+        self.locale = 'de_DE.utf8'
+
         super(R10kHookApp, self).__init__(
             appname=appname, verbose=verbose, version=version)
 
@@ -83,6 +84,29 @@ class R10kHookApp(BaseHookApp):
             elif isinstance(config['add_ignore_projects'], list):
                 self.ignore_projects += config['add_ignore_projects']
 
+        if 'locale' in config and config['locale']:
+            self.locale = config['locale']
+
+    # -------------------------------------------------------------------------
+    def pre_run(self):
+
+        if not super(R10kHookApp, self).pre_run():
+            return False
+
+        if self.full_name in self.ignore_projects or self.name in self.ignore_projects:
+            LOG.info("Ignoring project {!r}.".format(self.full_name))
+            return False
+
+        cur_loc = locale.getlocale()
+        cur_lang = os.environ.get('LANG', None)
+        if self.verbose > 1:
+            LOG.debug("Current locale is: {lo!r}, current LANG is {la!r}.".format(
+                lo=cur_loc, la=cur_lang))
+
+        LOG.debug("Setting locale and LANG to: {!r}.".format(self.locale))
+        locale.setlocale(locale.LC_ALL, self.locale)
+        os.environ['LANG'] = self.locale
+
     # -------------------------------------------------------------------------
     def run(self):
         """Main routine."""