intl/locale/props2arrays.py
author Nathan Froyd <froydnj@mozilla.com>
Thu, 19 Feb 2015 10:35:08 -0500
changeset 258774 0645b0eeb7202ee9e3aa0a0fe90b2affabbc79bc
parent 218934 b79894a533bcd2c5b742f55e0de9eff40d8b86c3
child 331773 835b1d9e49182f5a91e9dc931c19b836e14085ba
permissions -rw-r--r--
Bug 1134633 - convert makefile rules with props2arrays.py to use moz.build GENERATED_FILES; r=mshal Now that GENERATED_FILES can generate makefile rules for generating files, we can start moving rules from Makefile.in's into moz.build.

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

import sys

def main(header, propFile):
  mappings = {}

  with open(propFile, 'r') as f:
    for line in f:
      line = line.strip()
      if not line.startswith('#'):
        parts = line.split("=", 1)
        if len(parts) == 2 and len(parts[0]) > 0:
          mappings[parts[0].strip()] = parts[1].strip()
 
  keys = mappings.keys()
  keys.sort()

  header.write("// This is a generated file. Please do not edit.\n")
  header.write("// Please edit the corresponding .properties file instead.\n")

  entries = ['{ "%s", "%s", (const char*)NS_INT32_TO_PTR(%d) }'
             % (key, mappings[key], len(mappings[key])) for key in keys]
  header.write(',\n'.join(entries) + '\n')