]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
allow header_comment to be passed as an option to extract_message (#720)
authorMohamed Morsy <muhamed.hafez+github@gmail.com>
Tue, 12 Apr 2022 05:59:00 +0000 (07:59 +0200)
committerGitHub <noreply@github.com>
Tue, 12 Apr 2022 05:59:00 +0000 (08:59 +0300)
Fixes #82

Co-authored-by: Aarni Koskela <akx@iki.fi>
babel/messages/frontend.py
tests/messages/test_frontend.py

index 6e3686ecc0a786c44b73a8c3e20815fee77053b3..487f280288147c2e7c218d68e92cd96d0595cce5 100644 (file)
@@ -26,7 +26,7 @@ from io import StringIO
 from babel import __version__ as VERSION
 from babel import Locale, localedata
 from babel.core import UnknownLocaleError
-from babel.messages.catalog import Catalog
+from babel.messages.catalog import Catalog, DEFAULT_HEADER
 from babel.messages.extract import DEFAULT_KEYWORDS, DEFAULT_MAPPING, check_and_call_extract_file, extract_from_dir
 from babel.messages.mofile import write_mo
 from babel.messages.pofile import read_po, write_po
@@ -350,6 +350,8 @@ class extract_messages(Command):
         ('ignore-dirs=', None,
          'Patterns for directories to ignore when scanning for messages. '
          'Separate multiple patterns with spaces (default ".* ._")'),
+        ('header-comment=', None,
+         'header comment for the catalog'),
     ]
     boolean_options = [
         'no-default-keywords', 'no-location', 'omit-header', 'no-wrap',
@@ -394,6 +396,7 @@ class extract_messages(Command):
         self.strip_comments = False
         self.include_lineno = True
         self.ignore_dirs = None
+        self.header_comment = None
 
     def finalize_options(self):
         if self.input_dirs:
@@ -478,7 +481,8 @@ class extract_messages(Command):
                               version=self.version,
                               msgid_bugs_address=self.msgid_bugs_address,
                               copyright_holder=self.copyright_holder,
-                              charset=self.charset)
+                              charset=self.charset,
+                              header_comment=(self.header_comment or DEFAULT_HEADER))
 
             for path, method_map, options_map in mappings:
                 def callback(filename, method, options):
index 54a371f4966b7586d5c906a6ae4271d15eb5662e..4ed30ec5a858ec2e9f9d638f30c17aec223541b7 100644 (file)
@@ -1518,3 +1518,12 @@ def test_extract_ignore_dirs(monkeypatch, capsys, tmp_path, with_underscore_igno
     # unless we opt in to ignore it again
     assert ('ssshhh....' in pot_content) != with_underscore_ignore
     assert ('_hidden_by_default' in pot_content) != with_underscore_ignore
+
+
+def test_extract_header_comment(monkeypatch, tmp_path):
+    pot_file = tmp_path / 'temp.pot'
+    monkeypatch.chdir(project_dir)
+    cmdinst = configure_cli_command(f"extract . -o '{pot_file}' --header-comment 'Boing' ")
+    cmdinst.run()
+    pot_content = pot_file.read_text()
+    assert 'Boing' in pot_content