Support SOURCE_DATE_EPOCH for .po file generation
Marco Ricci

Marco Ricci commited on 2025-01-13 16:16:12
Zeige 1 geänderte Dateien mit 11 Einfügungen und 0 Löschungen.


Copyright messages and the creation date will bear the source date epoch
value.
... ...
@@ -1944,6 +1944,17 @@ def _write_po_file(  # noqa: C901
1944 1944
                 )
1945 1945
             entries[ctx][msg] = member
1946 1946
     build_time = datetime.datetime.now().astimezone()
1947
+    if os.environ.get('SOURCE_DATE_EPOCH'):
1948
+        try:
1949
+            source_date_epoch = int(os.environ['SOURCE_DATE_EPOCH'])
1950
+        except ValueError as exc:
1951
+            err_msg = 'Cannot parse SOURCE_DATE_EPOCH'
1952
+            raise RuntimeError(err_msg) from exc
1953
+        else:
1954
+            build_time = datetime.datetime.fromtimestamp(
1955
+                source_date_epoch,
1956
+                tz=datetime.timezone.utc,
1957
+            )
1947 1958
     if is_template:
1948 1959
         header = (
1949 1960
             inspect.cleandoc(rf"""
1950 1961