OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2014 Google Inc. All rights reserved. | 2 # Copyright (c) 2014 Google Inc. All rights reserved. |
3 # | 3 # |
4 # Redistribution and use in source and binary forms, with or without | 4 # Redistribution and use in source and binary forms, with or without |
5 # modification, are permitted provided that the following conditions are | 5 # modification, are permitted provided that the following conditions are |
6 # met: | 6 # met: |
7 # | 7 # |
8 # * Redistributions of source code must retain the above copyright | 8 # * Redistributions of source code must retain the above copyright |
9 # notice, this list of conditions and the following disclaimer. | 9 # notice, this list of conditions and the following disclaimer. |
10 # * Redistributions in binary form must reproduce the above | 10 # * Redistributions in binary form must reproduce the above |
(...skipping 16 matching lines...) Expand all Loading... |
27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 | 29 |
30 try: | 30 try: |
31 import simplejson as json | 31 import simplejson as json |
32 except ImportError: | 32 except ImportError: |
33 import json | 33 import json |
34 | 34 |
35 import sys | 35 import sys |
36 | 36 |
| 37 cssProperties = {} |
37 | 38 |
38 def properties_from_file(file_name): | |
39 properties = [] | |
40 with open(file_name, "r") as f: | |
41 for line in f: | |
42 line = line.strip() | |
43 if not line or line.startswith("//") or "alias_for" in line: | |
44 continue | |
45 name = line.partition(" ")[0] | |
46 entry = {"name": name} | |
47 longhands = line.partition("longhands=")[2].partition(",")[0] | |
48 if longhands: | |
49 entry["longhands"] = longhands.split(";") | |
50 properties.append(entry) | |
51 return properties | |
52 | 39 |
53 properties = properties_from_file(sys.argv[1]) | 40 def filterCommentsAndEmptyLines(lines): |
54 with open(sys.argv[2], "w") as f: | 41 result = [] |
55 f.write("WebInspector.CSSMetadata.initializeWithSupportedProperties(%s);" %
json.dumps(properties)) | 42 for line in lines: |
| 43 if len(line.strip()) > 0 and line[:2] != "//": |
| 44 result.append(line.strip()) |
| 45 return result |
| 46 |
| 47 |
| 48 def fillPropertiesFromFile(fileName): |
| 49 with open(fileName, "r") as f: |
| 50 lines = f.readlines() |
| 51 lines = filterCommentsAndEmptyLines(lines) |
| 52 for line in lines: |
| 53 if not "alias_for" in line: |
| 54 cssProperties[line] = [] |
| 55 |
| 56 |
| 57 def fillCSSShorthandsFromFile(fileName): |
| 58 with open(fileName, "r") as f: |
| 59 lines = f.readlines() |
| 60 lines = filterCommentsAndEmptyLines(lines) |
| 61 for line in lines: |
| 62 # Format for shorthands is: |
| 63 # <property-name>[ longhands=<longhand 1>;<longhand 2>;<longhand 3>] |
| 64 shorthand = line.partition(" ")[0] |
| 65 longhands = line.partition("longhands=")[2].partition(",")[0] |
| 66 if longhands: |
| 67 cssProperties[shorthand] = longhands.split(";") |
| 68 |
| 69 fillPropertiesFromFile(sys.argv[1]) |
| 70 fillPropertiesFromFile(sys.argv[2]) |
| 71 fillCSSShorthandsFromFile(sys.argv[3]) |
| 72 |
| 73 # Reformat from map into list. |
| 74 reformat = [] |
| 75 for name, longhands in cssProperties.items(): |
| 76 entry = {"name": name} |
| 77 if len(longhands) > 0: |
| 78 entry["longhands"] = longhands |
| 79 reformat.append(entry) |
| 80 |
| 81 with open(sys.argv[4], "w") as f: |
| 82 f.write("WebInspector.CSSMetadata.initializeWithSupportedProperties(%s);" %
json.dumps(reformat)) |
OLD | NEW |