#!/bin/env python3
# -*- coding: utf-8 -*-
-__version__ = '1.3.1'
+__version__ = '1.4.1'
# vim: ts=4 et list
from .module_list import ModuleInfoDict
+from .xlate import __module_dir__ as __xlate_module_dir__
+from .xlate import __base_dir__ as __xlate_base_dir__
+from .xlate import __mo_file__ as __xlate_mo_file__
+from .xlate import XLATOR, LOCALE_DIR, DOMAIN
+
__version__ = __pkg_version__
LOG = logging.getLogger(__name__)
DEFAULT_TO_EMAIL = 'puppet@pixelpark.com'
DEFAULT_TO_SENDER = 'Puppet <{}>'.format(DEFAULT_TO_EMAIL)
+_ = XLATOR.gettext
+ngettext = XLATOR.ngettext
# =============================================================================
class BaseHookError(FbAppError):
def __call__(self, parser, namespace, data_dir, option_string=None):
if not data_dir.exists():
- msg = "Data directory {!r} does not exists.".format(str(data_dir))
+ msg = _("Data directory {!r} does not exists.").format(str(data_dir))
raise argparse.ArgumentError(self, msg)
if not data_dir.is_dir():
- msg = "Path to data directory {!r} is not a directory.".format(str(data_dir))
+ msg = _("Path to data directory {!r} is not a directory.").format(str(data_dir))
raise argparse.ArgumentError(self, msg)
setattr(namespace, self.dest, data_dir)
base_dir = pathlib.Path(self.cgi_bin_dir)
if not description:
- description = "Base gitlab webhook application."
+ description = _("Base gitlab webhook application.")
self.data_dir = self.default_data_dir
self._read_stdin = True
super(BaseHookApp, self).init_arg_parser()
- hook_group = self.arg_parser.add_argument_group("General hook options")
+ hook_group = self.arg_parser.add_argument_group(_("General hook options"))
hook_group.add_argument(
"-N", "--no-error-mail", action='store_true', dest='no_error_mail',
- help="Don't send error messages in case of some exceptions.",
+ help=_("Don't send error mails in case of some exceptions."),
)
hook_group.add_argument(
- "-D", '--data', '--data-dir', metavar='DIR', dest='data_dir',
+ "-D", '--data', '--data-dir', metavar=_('DIR'), dest='data_dir',
action=DataDirOptionAction, type=pathlib.Path,
- help="Data directory, default: {!r}.".format(self.data_dir),
+ help=_("Data directory, default: {!r}.").format(self.data_dir),
)
sort_group = hook_group.add_mutually_exclusive_group()
sort_group.add_argument(
'-o', '--sort-by-name', action="store_true", dest='sort_by_name',
- help="Sorting all lists of modules by name and vendor, in this order."
+ help=_("Sorting all lists of modules by name and vendor, in this order.")
)
sort_group.add_argument(
'-O', '--sort-by-fullname', action="store_false", dest='sort_by_name',
- help="Sorting all lists of modules by the full name of the module (default)."
+ help=_("Sorting all lists of modules by the full name of the module (default).")
)
hook_group.add_argument(
"-C", '--cgi', action='store_true', dest='cgi',
- help='Enforces behaviour as called as a CGI script.',
+ help=_('Enforces behaviour as called as a CGI script.'),
)
self.arg_parser.add_argument(
'query', nargs='?',
- help="An optional query string like on HTTP GET requests."
+ help=_("An optional query string like on HTTP GET requests.")
)
# -------------------------------------------------------------------------
res['mail_headline'] = self.mail_headline
res['sort_by_name'] = self.sort_by_name
+ if 'xlate' not in res:
+ res['xlate'] = {}
+ res['xlate'][DOMAIN] = {
+ '__module_dir__': __xlate_module_dir__,
+ '__base_dir__': __xlate_base_dir__,
+ 'LOCALE_DIR': LOCALE_DIR,
+ 'DOMAIN': DOMAIN,
+ '__mo_file__': __xlate_mo_file__,
+ }
+
return res
# -------------------------------------------------------------------------
f = str(yaml_file)
if self._start_verbose > 1:
- self.print_err("Trying to read config from {!r} ...".format(f))
+ self.print_err(_("Trying to read config from {!r} ...").format(f))
if not os.access(f, os.F_OK):
return
if self._start_verbose > 1:
- self.print_err("Reading config from {!r} ...".format(f))
+ self.print_err(_("Reading config from {!r} ...").format(f))
config = {}
with open(f, 'rb') as fh:
config = yaml.load(fh.read())
if self._start_verbose > 2:
- self.print_err("Read config:\n{}".format(pp(config)))
+ self.print_err(_("Read config:\n{}").format(pp(config)))
if config and isinstance(config, dict):
self.evaluate_config(config, f)
if v >= self.verbose:
self._verbose = v
else:
- LOG.warn("Wrong verbose level {v!d} in file {f!r}, must be >= 0".format(
+ LOG.warn(_("Wrong verbose level {v!d} in file {f!r}, must be >= 0").format(
v=v, f=yaml_file))
except ValueError as e:
- msg = "Wrong verbose level {v!r} in file {f!r}: {e}".format(
+ msg = _("Wrong verbose level {v!r} in file {f!r}: {e}").format(
v=config['verbose'], f=yaml_file, e=e)
LOG.warn(msg)
try:
se = open(self.error_logfile, 'ab', 0)
except Exception as e:
- msg = "Could not open error logfile {f!r}: {e}\n\n".format(
- f=self.error_logfile, e=e)
+ msg = _("Could not open error logfile {f!r}: {e}").format(
+ f=self.error_logfile, e=e) + '\n\n'
sys.stderr.write(msg)
sys.exit(7)
self.print_out("Content-Type: {};charset=utf-8\n".format(self.mime_type))
if self.output_type == 'txt':
- self.print_out("Python CGI läuft.\n")
+ self.print_out(_("Python CGI is running.") + "\n")
elif self.output_type == 'html':
self.print_htlm_start()
self.run_hook()
except BaseHookError as e:
cn = e.__class__.__name__
- n = ''
- if self.re_selbstlaut.match(cn):
- n = 'n'
- msg = "Got a{n} {cn} performing {a}: {e}".format(n=n, cn=cn, a=self.appname, e=e)
+ msg = _("Got a {cn} performing {a}: {e}").format(n=n, cn=cn, a=self.appname, e=e)
self.error_data.append(msg)
LOG.error(msg)
except Exception as e:
cn = e.__class__.__name__
- n = ''
- if self.re_selbstlaut.match(cn):
- n = 'n'
- msg = "Got a{n} {cn} performing {a}: {e}".format(n=n, cn=cn, a=self.appname, e=e)
+ msg = _("Got a {cn} performing {a}: {e}").format(n=n, cn=cn, a=self.appname, e=e)
msg += "\n\nTraceback:\n{}".format(traceback.format_exc())
self.error_data.append(msg)
LOG.error(msg)
except Exception as e:
cn = e.__class__.__name__
- n = ''
- if self.re_selbstlaut.match(cn):
- n = 'n'
- msg = "Got a{n} {cn} reading input data as JSON: {e}".format(n=n, cn=cn, e=e)
- msg += "\nInput data: {!r}".format(self.data)
+ msg = _("Got a {cn} reading input data as JSON: {e}").format(n=n, cn=cn, e=e)
+ msg += "\n" + _("Input data: {!r}").format(self.data)
LOG.error(msg)
self.error_data.append(msg)
def post_run(self):
if self.verbose > 1:
- LOG.info("Executing {} ...".format('post_run()'))
+ LOG.info(_("Executing {} ...").format('post_run()'))
if self.full_name:
self.send_error_msgs(self.full_name)
self.full_name = self.json_data['project']['path_with_namespace']
if self.special_chars_re.search(self.name):
- msg = "Project {!r}: Received special characters in module name".format(
+ msg = _("Project {!r}: Received special characters in module name").format(
self.full_name)
LOG.error(msg)
self.error_data.append(msg)
if self.verbose > 1:
LOG.debug("Got committers: {}".format(pp(committers)))
last = committers[-1]
- LOG.info("Last commit by {n!r} <{m}> at {d}.".format(
+ LOG.info(_("Last commit by {n!r} <{m}> at {d}.").format(
n=last[2], m=last[1], d=last[0].isoformat(' ')))
self.mail_to_addresses.append(last[1])
else:
else:
self.git_ssh_url = 'git@git.pixelpark.com:{ns}/{n}.git'.format(
ns=self.namespace, n=self.name)
- LOG.info("Executing webhook {a!r} for Git SSH URL {u!r}, branch {b!r}.".format(
+ LOG.info(_("Executing webhook {a!r} for Git SSH URL {u!r}, branch {b!r}.").format(
a=self.appname, u=self.git_ssh_url, b=self.ref))
LOG.debug("Environment directory should be {!r}.".format(self.env_dir))
if not os.path.exists(self.data_dir):
raise BaseHookError(
- "Data directory {!r} does not exists.".format(self.data_dir))
+ _("Data directory {!r} does not exists.").format(self.data_dir))
if not os.path.isdir(self.data_dir):
raise BaseHookError(
- "Path for data directory {!r} is not a directory.".format(self.data_dir))
+ _("Path to data directory {!r} is not a directory.").format(self.data_dir))
if not os.access(self.data_dir, os.W_OK):
raise BaseHookError(
- "Data directory {!r} is not writeable.".format(self.data_dir))
+ _("Data directory {!r} is not writeable.").format(self.data_dir))
return True
msg = EmailMessage()
- s = ''
- if len(self.error_data) > 1:
- s = 's'
-
if project:
- body = 'Error{s} while processing {p!r} project:\n\n'.format(
- s=s, p=project)
- subject = 'Puppetmaster deploy error{s} for project {p!r}'.format(
- s=s, p=project)
+ body = ngettext(
+ 'Error while processing {!r} project:',
+ 'Errors while processing {!r} project:',
+ len(self.error_data)).format(project) + '\n\n'
+ subject = ngettext(
+ 'Puppetmaster deploy error for project {!r}',
+ 'Puppetmaster deploy errors for project {!r}',
+ len(self.error_data)).format(project)
else:
- body = 'Error{s} while processing {a!r}:\n\n'.format(
- s=s, a=self.appname)
- subject = 'Puppetmaster error{s} processing {a!r}'.format(
+ body = ngettext(
+ 'Error while processing {!r}:',
+ 'Errors while processing {!r}:',
s=s, a=self.appname)
+ subject = ngettext(
+ 'Puppetmaster error processing {!r}',
+ 'Puppetmaster errors processing {!r}',
+ len(self.error_data)).format(self.appname)
if self.mail_subject:
subject = self.mail_subject
if self.mail_headline:
body = self.mail_headline + '\n\n'
body += '\n'.join(self.error_data)
- body += '\n\nCheers\nPuppetmaster'
+ body += '\n\n' + _("Cheers") + '\nPuppetmaster'
msg.set_content(body)
msg.set_charset('utf-8')
msg['X-Mailer'] = "Puppetmaster deploy script v.{}".format(__version__)
if self.verbose:
- LOG.info("Sending the following mail to {r!r} via {s}:{p}:\n{m}".format(
+ LOG.info(_("Sending the following mail to {r!r} via {s}:{p}:\n{m}").format(
r=to_addresses, m=msg.as_string(unixfrom=True),
s=self.smtp_server, p=self.smtp_port))
else:
- LOG.info("Sending a mail to {r!r} via {s}:{p}:\n{e}".format(
+ LOG.info(_("Sending a mail to {r!r} via {s}:{p}:\n{e}").format(
r=to_addresses, e=pp(self.error_data),
s=self.smtp_server, p=self.smtp_port))
if self.no_error_mail:
- LOG.debug("It's undesired to send error mails.")
+ LOG.debug(_("It's undesired to send error mails."))
return
if self.simulate:
- LOG.info("Simulation mode, don't sending mail.")
+ LOG.info(_("Simulation mode, don't sending mail."))
return
server = smtplib.SMTP(self.smtp_server, self.smtp_port)
r=to_addresses, s=self.smtp_server, p=self.smtp_port))
else:
if project:
- msg = (
+ msg = _(
"Errors on sending error message for project "
"{pr!r} to {r!r} via {s}:{p}:\n{e}").format(
r=to_addresses, s=self.smtp_server, p=self.smtp_port,
pr=project, e=pp(result))
else:
- msg = (
+ msg = _(
"Errors on sending error message for {a!r} "
"to {r!r} via {s}:{p}:\n{e}").format(
a=self.appname, r=to_addresses, s=self.smtp_server,
LOG.debug("Searching for {!r} ...".format(self.cachefile))
if not os.path.exists(self.cachefile):
raise UncriticalHookError(
- "Cache file {!r} not found.".format(self.cachefile))
+ _("Cache file {!r} not found.").format(self.cachefile))
if not os.access(self.cachefile, os.R_OK):
raise UncriticalHookError(
- "Cache file {!r} not readable.".format(self.cachefile))
+ _("Cache file {!r} not readable.").format(self.cachefile))
modules = ModuleInfoDict(
appname=self.appname, verbose=self.verbose, base_dir=self.base_dir,
modules.append(module_info)
except yaml.YAMLError as e:
raise UncriticalHookError(
- "Could not evaluate content of {f!r}: {e}".format(f=self.cachefile, e=e))
+ _("Could not evaluate content of {f!r}: {e}").format(f=self.cachefile, e=e))
if self.verbose > 3:
LOG.debug("Content of {f!r}:\n{c}".format(f=self.cachefile, c=pp(modules.as_list())))
if not len(modules):
msgstr ""
"Project-Id-Version: puppetmaster_webhooks 1.3.1\n"
"Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2018-12-28 10:12+0100\n"
-"PO-Revision-Date: 2018-12-28 10:15+0100\n"
+"POT-Creation-Date: 2018-12-28 11:18+0100\n"
+"PO-Revision-Date: 2018-12-28 11:19+0100\n"
"Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
"Language: de_DE\n"
"Language-Team: de_DE <LL@li.org>\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.6.0\n"
+#: lib/webhooks/base_app.py:91 lib/webhooks/base_app.py:1061
+msgid "Data directory {!r} does not exists."
+msgstr "Das Datenverzeichnis {!r} existiert nicht."
+
+#: lib/webhooks/base_app.py:95 lib/webhooks/base_app.py:1065
+msgid "Path to data directory {!r} is not a directory."
+msgstr "Der Pfad zum Datenverzeichnis {!r} ist kein Verzeichnis."
+
+#: lib/webhooks/base_app.py:148
+msgid "Base gitlab webhook application."
+msgstr "Basisanwendung für Gitlab-Webhooks."
+
+#: lib/webhooks/base_app.py:240
+msgid "General hook options"
+msgstr "Allgemeine Webhook-Optionen"
+
+#: lib/webhooks/base_app.py:244
+msgid "Don't send error mails in case of some exceptions."
+msgstr "Keine Fehler-Mails im Falle von Fehlern und Ausnahmen senden."
+
+#: lib/webhooks/base_app.py:248
+msgid "DIR"
+msgstr "VERZEICHNIS"
+
+#: lib/webhooks/base_app.py:250
+msgid "Data directory, default: {!r}."
+msgstr "Datenverzeichnis, Vorgabe: {!r}."
+
+#: lib/webhooks/base_app.py:257
+msgid "Sorting all lists of modules by name and vendor, in this order."
+msgstr "Sortieren aller Modullisten nach Name und Herausgeber, in dieser Reihenfolge."
+
+#: lib/webhooks/base_app.py:262
+msgid "Sorting all lists of modules by the full name of the module (default)."
+msgstr "Sortieren aller Modullisten nach dem vollen Modulnamen (Vorgabe)."
+
+#: lib/webhooks/base_app.py:267
+msgid "Enforces behaviour as called as a CGI script."
+msgstr "Erzwingt ein Verhalten des Scripts, als wenn es als CGI script aufgerufen würde."
+
+#: lib/webhooks/base_app.py:272
+msgid "An optional query string like on HTTP GET requests."
+msgstr "Ein optionaler Abfrage-String wie bei einem HTTP-GET-Request."
+
+#: lib/webhooks/base_app.py:684
+msgid "Trying to read config from {!r} ..."
+msgstr "Versuche Konfiguration aus {!r} zu lesen ..."
+
+#: lib/webhooks/base_app.py:688
+msgid "Reading config from {!r} ..."
+msgstr "Lese Konfiguration aus {!r} ..."
+
+#: lib/webhooks/base_app.py:693
+msgid ""
+"Read config:\n"
+"{}"
+msgstr ""
+"Gelesene Konfiguration:\n"
+"{}"
+
+#: lib/webhooks/base_app.py:713
+msgid "Wrong verbose level {v!d} in file {f!r}, must be >= 0"
+msgstr "Falsches Ausführlichkeitsniveau {v!d} in Datei {f!r}, es muss größer als oder gleich Null sein."
+
+#: lib/webhooks/base_app.py:716
+msgid "Wrong verbose level {v!r} in file {f!r}: {e}"
+msgstr "Falsches Ausführlichkeitsniveau {v!r}n Datei {f!r}: {e}"
+
+#: lib/webhooks/base_app.py:822
+msgid "Could not open error logfile {f!r}: {e}"
+msgstr "Konnte Fehler-Logdatei {f!r} nicht öffnen: {e}"
+
+#: lib/webhooks/base_app.py:873
+msgid "Python CGI is running."
+msgstr "Python-CGI-Skript wird aussgeführt."
+
+#: lib/webhooks/base_app.py:906 lib/webhooks/base_app.py:911
+msgid "Got a {cn} performing {a}: {e}"
+msgstr "Hab einen {cn} bei der Ausführung von {a} erhalten: {e}"
+
+#: lib/webhooks/base_app.py:917
+msgid "Got a {cn} reading input data as JSON: {e}"
+msgstr "Hab einen {cn} beim Lesen der Eingabedaten als JSON erhalten: {e}"
+
+#: lib/webhooks/base_app.py:918
+msgid "Input data: {!r}"
+msgstr "Eingabedaten: {!r}"
+
+#: lib/webhooks/base_app.py:932
+msgid "Executing {} ..."
+msgstr "Führe {} aus ..."
+
+#: lib/webhooks/base_app.py:1011
+msgid "Project {!r}: Received special characters in module name"
+msgstr "Projekt {!r}: Spezialzeichen in Modulnamen erhalten"
+
+#: lib/webhooks/base_app.py:1036
+msgid "Last commit by {n!r} <{m}> at {d}."
+msgstr "Letzter Commit durch {n!r} <{m}> am {d}."
+
+#: lib/webhooks/base_app.py:1047
+msgid "Executing webhook {a!r} for Git SSH URL {u!r}, branch {b!r}."
+msgstr "Führe Webhook {a!r} für Git-SSH-URL {u!r}, Branch {b!r}, aus."
+
+#: lib/webhooks/base_app.py:1069
+msgid "Data directory {!r} is not writeable."
+msgstr "Im Datenverzeichnis {!r} kann nicht geschrieben werden."
+
+#: lib/webhooks/base_app.py:1085
+msgid "Error while processing {!r} project:"
+msgid_plural "Errors while processing {!r} project:"
+msgstr[0] "Fehler bei der Verarbeitung des {!r}-Projektes:"
+msgstr[1] "Fehler bei der Verarbeitung des {!r}-Projektes:"
+
+#: lib/webhooks/base_app.py:1089
+msgid "Puppetmaster deploy error for project {!r}"
+msgid_plural "Puppetmaster deploy errors for project {!r}"
+msgstr[0] "Puppetmaster-Deploy-Fehler für das Projekt {!r}"
+msgstr[1] "Puppetmaster-Deploy-Fehler für das Projekt {!r}"
+
+#: lib/webhooks/base_app.py:1091
+msgid "Error while processing {!r}:"
+msgid_plural "Errors while processing {!r}:"
+msgstr[0] "Fehler bei der Ausführung von {!r}:"
+msgstr[1] "Fehler bei der Ausführung von {!r}:"
+
+#: lib/webhooks/base_app.py:1098
+msgid "Puppetmaster error processing {!r}"
+msgid_plural "Puppetmaster errors processing {!r}"
+msgstr[0] "Puppetmaster-Fehler bei der Ausführung von {!r}"
+msgstr[1] "Puppetmaster-Fehler bei der Ausführung von {!r}"
+
+#: lib/webhooks/base_app.py:1104
+msgid "Cheers"
+msgstr "Grüße"
+
+#: lib/webhooks/base_app.py:1122
+msgid ""
+"Sending the following mail to {r!r} via {s}:{p}:\n"
+"{m}"
+msgstr ""
+"Verschicken der folgenden Mail an {r!r} via {s}:{p}:\n"
+"{m}"
+
+#: lib/webhooks/base_app.py:1126
+msgid ""
+"Sending a mail to {r!r} via {s}:{p}:\n"
+"{e}"
+msgstr ""
+"Verschicken der Mail an {r!r} via {s}:{p}:\n"
+"{m}"
+
+#: lib/webhooks/base_app.py:1131
+msgid "It's undesired to send error mails."
+msgstr "Das Versenden von Fehler-Mails ist nicht gewünscht."
+
+#: lib/webhooks/base_app.py:1135
+msgid "Simulation mode, don't sending mail."
+msgstr "Simulations-Modus, kein Versenden von Mails."
+
+#: lib/webhooks/base_app.py:1153
+msgid ""
+"Errors on sending error message for project {pr!r} to {r!r} via {s}:{p}:\n"
+"{e}"
+msgstr ""
+"Fehler beim Versenden der Fehlermail für das Projekt {pr!r} an {r!r} via {s}:{p}:\n"
+"{e}"
+
+#: lib/webhooks/base_app.py:1159
+msgid ""
+"Errors on sending error message for {a!r} to {r!r} via {s}:{p}:\n"
+"{e}"
+msgstr ""
+"Fehler beim Versenden der Fehlermail für {a!r} an {r!r} via {s}:{p}:\n"
+"{e}"
+
+#: lib/webhooks/base_app.py:1182
+msgid "Cache file {!r} not found."
+msgstr "Cache-Datei {!r} nicht gefunden."
+
+#: lib/webhooks/base_app.py:1186
+msgid "Cache file {!r} not readable."
+msgstr "Cache-Datei {!r} nicht lesbar."
+
+#: lib/webhooks/base_app.py:1217
+msgid "Could not evaluate content of {f!r}: {e}"
+msgstr "Konnte den Inhalt von {f!r} nicht auswerten: {e}"
+
#: lib/webhooks/xlate.py:54
msgid "Module directory: {!r}"
msgstr "Modul-Verzeichnis: {!r}"
msgstr ""
"Project-Id-Version: puppetmaster_webhooks 1.3.1\n"
"Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2018-12-28 10:12+0100\n"
+"POT-Creation-Date: 2018-12-28 11:18+0100\n"
"PO-Revision-Date: 2018-12-28 09:57+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en_US\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.6.0\n"
+#: lib/webhooks/base_app.py:91 lib/webhooks/base_app.py:1061
+msgid "Data directory {!r} does not exists."
+msgstr ""
+
+#: lib/webhooks/base_app.py:95 lib/webhooks/base_app.py:1065
+msgid "Path to data directory {!r} is not a directory."
+msgstr ""
+
+#: lib/webhooks/base_app.py:148
+msgid "Base gitlab webhook application."
+msgstr ""
+
+#: lib/webhooks/base_app.py:240
+msgid "General hook options"
+msgstr ""
+
+#: lib/webhooks/base_app.py:244
+msgid "Don't send error mails in case of some exceptions."
+msgstr ""
+
+#: lib/webhooks/base_app.py:248
+msgid "DIR"
+msgstr ""
+
+#: lib/webhooks/base_app.py:250
+msgid "Data directory, default: {!r}."
+msgstr ""
+
+#: lib/webhooks/base_app.py:257
+msgid "Sorting all lists of modules by name and vendor, in this order."
+msgstr ""
+
+#: lib/webhooks/base_app.py:262
+msgid "Sorting all lists of modules by the full name of the module (default)."
+msgstr ""
+
+#: lib/webhooks/base_app.py:267
+msgid "Enforces behaviour as called as a CGI script."
+msgstr ""
+
+#: lib/webhooks/base_app.py:272
+msgid "An optional query string like on HTTP GET requests."
+msgstr ""
+
+#: lib/webhooks/base_app.py:684
+msgid "Trying to read config from {!r} ..."
+msgstr ""
+
+#: lib/webhooks/base_app.py:688
+msgid "Reading config from {!r} ..."
+msgstr ""
+
+#: lib/webhooks/base_app.py:693
+msgid ""
+"Read config:\n"
+"{}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:713
+msgid "Wrong verbose level {v!d} in file {f!r}, must be >= 0"
+msgstr ""
+
+#: lib/webhooks/base_app.py:716
+msgid "Wrong verbose level {v!r} in file {f!r}: {e}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:822
+msgid "Could not open error logfile {f!r}: {e}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:873
+msgid "Python CGI is running."
+msgstr ""
+
+#: lib/webhooks/base_app.py:906 lib/webhooks/base_app.py:911
+msgid "Got a {cn} performing {a}: {e}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:917
+msgid "Got a {cn} reading input data as JSON: {e}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:918
+msgid "Input data: {!r}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:932
+msgid "Executing {} ..."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1011
+msgid "Project {!r}: Received special characters in module name"
+msgstr ""
+
+#: lib/webhooks/base_app.py:1036
+msgid "Last commit by {n!r} <{m}> at {d}."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1047
+msgid "Executing webhook {a!r} for Git SSH URL {u!r}, branch {b!r}."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1069
+msgid "Data directory {!r} is not writeable."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1085
+msgid "Error while processing {!r} project:"
+msgid_plural "Errors while processing {!r} project:"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lib/webhooks/base_app.py:1089
+msgid "Puppetmaster deploy error for project {!r}"
+msgid_plural "Puppetmaster deploy errors for project {!r}"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lib/webhooks/base_app.py:1091
+msgid "Error while processing {!r}:"
+msgid_plural "Errors while processing {!r}:"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lib/webhooks/base_app.py:1098
+msgid "Puppetmaster error processing {!r}"
+msgid_plural "Puppetmaster errors processing {!r}"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lib/webhooks/base_app.py:1104
+msgid "Cheers"
+msgstr ""
+
+#: lib/webhooks/base_app.py:1122
+msgid ""
+"Sending the following mail to {r!r} via {s}:{p}:\n"
+"{m}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:1126
+msgid ""
+"Sending a mail to {r!r} via {s}:{p}:\n"
+"{e}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:1131
+msgid "It's undesired to send error mails."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1135
+msgid "Simulation mode, don't sending mail."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1153
+msgid ""
+"Errors on sending error message for project {pr!r} to {r!r} via {s}:{p}:\n"
+"{e}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:1159
+msgid ""
+"Errors on sending error message for {a!r} to {r!r} via {s}:{p}:\n"
+"{e}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:1182
+msgid "Cache file {!r} not found."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1186
+msgid "Cache file {!r} not readable."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1217
+msgid "Could not evaluate content of {f!r}: {e}"
+msgstr ""
+
#: lib/webhooks/xlate.py:54
msgid "Module directory: {!r}"
msgstr ""
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: puppetmaster_webhooks 1.3.1\n"
+"Project-Id-Version: puppetmaster_webhooks 1.4.1\n"
"Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2018-12-28 10:12+0100\n"
+"POT-Creation-Date: 2018-12-28 11:18+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.6.0\n"
+#: lib/webhooks/base_app.py:91 lib/webhooks/base_app.py:1061
+msgid "Data directory {!r} does not exists."
+msgstr ""
+
+#: lib/webhooks/base_app.py:95 lib/webhooks/base_app.py:1065
+msgid "Path to data directory {!r} is not a directory."
+msgstr ""
+
+#: lib/webhooks/base_app.py:148
+msgid "Base gitlab webhook application."
+msgstr ""
+
+#: lib/webhooks/base_app.py:240
+msgid "General hook options"
+msgstr ""
+
+#: lib/webhooks/base_app.py:244
+msgid "Don't send error mails in case of some exceptions."
+msgstr ""
+
+#: lib/webhooks/base_app.py:248
+msgid "DIR"
+msgstr ""
+
+#: lib/webhooks/base_app.py:250
+msgid "Data directory, default: {!r}."
+msgstr ""
+
+#: lib/webhooks/base_app.py:257
+msgid "Sorting all lists of modules by name and vendor, in this order."
+msgstr ""
+
+#: lib/webhooks/base_app.py:262
+msgid "Sorting all lists of modules by the full name of the module (default)."
+msgstr ""
+
+#: lib/webhooks/base_app.py:267
+msgid "Enforces behaviour as called as a CGI script."
+msgstr ""
+
+#: lib/webhooks/base_app.py:272
+msgid "An optional query string like on HTTP GET requests."
+msgstr ""
+
+#: lib/webhooks/base_app.py:684
+msgid "Trying to read config from {!r} ..."
+msgstr ""
+
+#: lib/webhooks/base_app.py:688
+msgid "Reading config from {!r} ..."
+msgstr ""
+
+#: lib/webhooks/base_app.py:693
+msgid ""
+"Read config:\n"
+"{}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:713
+msgid "Wrong verbose level {v!d} in file {f!r}, must be >= 0"
+msgstr ""
+
+#: lib/webhooks/base_app.py:716
+msgid "Wrong verbose level {v!r} in file {f!r}: {e}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:822
+msgid "Could not open error logfile {f!r}: {e}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:873
+msgid "Python CGI is running."
+msgstr ""
+
+#: lib/webhooks/base_app.py:906 lib/webhooks/base_app.py:911
+msgid "Got a {cn} performing {a}: {e}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:917
+msgid "Got a {cn} reading input data as JSON: {e}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:918
+msgid "Input data: {!r}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:932
+msgid "Executing {} ..."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1011
+msgid "Project {!r}: Received special characters in module name"
+msgstr ""
+
+#: lib/webhooks/base_app.py:1036
+msgid "Last commit by {n!r} <{m}> at {d}."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1047
+msgid "Executing webhook {a!r} for Git SSH URL {u!r}, branch {b!r}."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1069
+msgid "Data directory {!r} is not writeable."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1085
+msgid "Error while processing {!r} project:"
+msgid_plural "Errors while processing {!r} project:"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lib/webhooks/base_app.py:1089
+msgid "Puppetmaster deploy error for project {!r}"
+msgid_plural "Puppetmaster deploy errors for project {!r}"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lib/webhooks/base_app.py:1091
+msgid "Error while processing {!r}:"
+msgid_plural "Errors while processing {!r}:"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lib/webhooks/base_app.py:1098
+msgid "Puppetmaster error processing {!r}"
+msgid_plural "Puppetmaster errors processing {!r}"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lib/webhooks/base_app.py:1104
+msgid "Cheers"
+msgstr ""
+
+#: lib/webhooks/base_app.py:1122
+msgid ""
+"Sending the following mail to {r!r} via {s}:{p}:\n"
+"{m}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:1126
+msgid ""
+"Sending a mail to {r!r} via {s}:{p}:\n"
+"{e}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:1131
+msgid "It's undesired to send error mails."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1135
+msgid "Simulation mode, don't sending mail."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1153
+msgid ""
+"Errors on sending error message for project {pr!r} to {r!r} via {s}:{p}:\n"
+"{e}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:1159
+msgid ""
+"Errors on sending error message for {a!r} to {r!r} via {s}:{p}:\n"
+"{e}"
+msgstr ""
+
+#: lib/webhooks/base_app.py:1182
+msgid "Cache file {!r} not found."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1186
+msgid "Cache file {!r} not readable."
+msgstr ""
+
+#: lib/webhooks/base_app.py:1217
+msgid "Could not evaluate content of {f!r}: {e}"
+msgstr ""
+
#: lib/webhooks/xlate.py:54
msgid "Module directory: {!r}"
msgstr ""