#!/usr/bin/env python3 #-*- coding: utf-8 -*- # Copyright (C) 2021 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the 'License'); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """ Finalize resource values in tags Usage: finalize_res.py core/res/res/values/public.xml public_finalized.xml """ import re, sys, codecs def finalize_item(raw): global _type, _id _id += 1 return '' % (_type, raw.group(1), '0x{0:0{1}x}'.format(_id-1,8)) def finalize_group(raw): global _type, _id _type = raw.group(1) _id = int(raw.group(2), 16) return re.sub(r'', finalize_item, raw.group(3)) with open(sys.argv[1]) as f: raw = f.read() raw = re.sub(r'(.+?)', finalize_group, raw, flags=re.DOTALL) with open(sys.argv[2], "w") as f: f.write(raw)