fix(formatting): Fix leftover files on protected folders · espressif/arduino-esp32@a5d702e (original) (raw)
1
1
`#!/usr/bin/env python
`
``
2
+
2
3
`# This script merges two Arduino Board Manager package json files.
`
3
4
`# Usage:
`
4
5
`# python merge_packages.py package_esp8266com_index.json version/new/package_esp8266com_index.json
`
5
6
`# Written by Ivan Grokhotkov, 2015
`
6
7
`#
`
``
8
+
7
9
`from future import print_function
`
8
``
`-
#from distutils.version import LooseVersion
`
``
10
+
``
11
`+
from distutils.version import LooseVersion
`
9
12
`from packaging.version import Version
`
10
13
`import re
`
11
14
`import json
`
12
15
`import sys
`
13
16
``
``
17
+
14
18
`def load_package(filename):
`
15
``
`-
pkg = json.load(open(filename))['packages'][0]
`
16
``
`-
print("Loaded package {0} from {1}".format(pkg['name'], filename), file=sys.stderr)
`
17
``
`-
print("{0} platform(s), {1} tools".format(len(pkg['platforms']), len(pkg['tools'])), file=sys.stderr)
`
``
19
`+
pkg = json.load(open(filename))["packages"][0]
`
``
20
`+
print("Loaded package {0} from {1}".format(pkg["name"], filename), file=sys.stderr)
`
``
21
`+
print("{0} platform(s), {1} tools".format(len(pkg["platforms"]), len(pkg["tools"])), file=sys.stderr)
`
18
22
`return pkg
`
19
23
``
``
24
+
20
25
`def merge_objects(versions, obj):
`
21
26
`for o in obj:
`
22
``
`-
name = o['name'].encode('ascii')
`
23
``
`-
ver = o['version'].encode('ascii')
`
24
``
`-
if not name in versions:
`
``
27
`+
name = o["name"].encode("ascii")
`
``
28
`+
ver = o["version"].encode("ascii")
`
``
29
`+
if name not in versions:
`
25
30
`print("found new object, {0}".format(name), file=sys.stderr)
`
26
31
`versions[name] = {}
`
27
``
`-
if not ver in versions[name]:
`
``
32
`+
if ver not in versions[name]:
`
28
33
`print("found new version {0} for object {1}".format(ver, name), file=sys.stderr)
`
29
34
`versions[name][ver] = o
`
30
35
`return versions
`
31
36
``
32
``
`-
Normalize ESP release version string (x.x.x) by adding '-rc' (x.x.x-rc9223372036854775807) to ensure having REL above any RC
`
33
``
`-
Dummy approach, functional anyway for current ESP package versioning (unlike NormalizedVersion/LooseVersion/StrictVersion & similar crap)
`
``
37
+
``
38
`+
Normalize ESP release version string (x.x.x) by adding '-rc' (x.x.x-rc9223372036854775807)
`
``
39
`+
to ensure having REL above any RC
`
``
40
`+
Dummy approach, functional anyway for current ESP package versioning
`
``
41
`+
(unlike NormalizedVersion/LooseVersion/StrictVersion & similar crap)
`
34
42
`def pkgVersionNormalized(versionString):
`
35
43
``
36
44
`verStr = str(versionString)
`
37
``
`-
verParts = re.split('.|-rc|-alpha', verStr, flags=re.IGNORECASE)
`
38
``
-
``
45
`+
verParts = re.split(r".|-rc|-alpha", verStr, flags=re.IGNORECASE)
`
``
46
+
39
47
`if len(verParts) == 3:
`
40
``
`-
if (sys.version_info > (3, 0)): # Python 3
`
41
``
`-
verStr = str(versionString) + '-rc' + str(sys.maxsize)
`
42
``
`-
else: # Python 2
`
43
``
`-
verStr = str(versionString) + '-rc' + str(sys.maxint)
`
44
``
-
``
48
`+
if sys.version_info > (3, 0): # Python 3
`
``
49
`+
verStr = str(versionString) + "-rc" + str(sys.maxsize)
`
``
50
`+
else: # Python 2
`
``
51
`+
verStr = str(versionString) + "-rc" + str(sys.maxint)
`
``
52
+
45
53
`elif len(verParts) != 4:
`
46
54
`print("pkgVersionNormalized WARNING: unexpected version format: {0})".format(verStr), file=sys.stderr)
`
47
``
-
``
55
+
48
56
`return verStr
`
49
57
``
50
58
``
`@@ -54,31 +62,37 @@ def main(args):
`
54
62
`return 1
`
55
63
``
56
64
`tools = {}
`
57
``
`-
platforms = {}
`
``
65
`+
platforms = {}
`
58
66
`pkg1 = load_package(args[1])
`
59
``
`-
tools = merge_objects(tools, pkg1['tools']);
`
60
``
`-
platforms = merge_objects(platforms, pkg1['platforms']);
`
``
67
`+
tools = merge_objects(tools, pkg1["tools"])
`
``
68
`+
platforms = merge_objects(platforms, pkg1["platforms"])
`
61
69
`pkg2 = load_package(args[2])
`
62
``
`-
tools = merge_objects(tools, pkg2['tools']);
`
63
``
`-
platforms = merge_objects(platforms, pkg2['platforms']);
`
``
70
`+
tools = merge_objects(tools, pkg2["tools"])
`
``
71
`+
platforms = merge_objects(platforms, pkg2["platforms"])
`
64
72
``
65
``
`-
pkg1['tools'] = []
`
66
``
`-
pkg1['platforms'] = []
`
``
73
`+
pkg1["tools"] = []
`
``
74
`+
pkg1["platforms"] = []
`
67
75
``
68
76
`for name in tools:
`
69
77
`for version in tools[name]:
`
70
78
`print("Adding tool {0}-{1}".format(name, version), file=sys.stderr)
`
71
``
`-
pkg1['tools'].append(tools[name][version])
`
``
79
`+
pkg1["tools"].append(tools[name][version])
`
72
80
``
73
81
`for name in platforms:
`
74
82
`for version in platforms[name]:
`
75
83
`print("Adding platform {0}-{1}".format(name, version), file=sys.stderr)
`
76
``
`-
pkg1['platforms'].append(platforms[name][version])
`
77
``
-
78
``
`-
#pkg1['platforms'] = sorted(pkg1['platforms'], key=lambda k: LooseVersion(pkgVersionNormalized(k['version'])), reverse=True)
`
79
``
`-
pkg1['platforms'] = sorted(pkg1['platforms'], key=lambda k: Version(pkgVersionNormalized(k['version'])), reverse=True)
`
``
84
`+
pkg1["platforms"].append(platforms[name][version])
`
``
85
+
``
86
`+
pkg1["platforms"] = sorted(
`
``
87
`+
pkg1["platforms"], key=lambda k: LooseVersion(pkgVersionNormalized(k["version"])), reverse=True
`
``
88
`+
)
`
``
89
+
``
90
`+
pkg1["platforms"] = sorted(
`
``
91
`+
pkg1["platforms"], key=lambda k: Version(pkgVersionNormalized(k["version"])), reverse=True
`
``
92
`+
)
`
``
93
+
``
94
`+
json.dump({"packages": [pkg1]}, sys.stdout, indent=2)
`
80
95
``
81
``
`-
json.dump({'packages':[pkg1]}, sys.stdout, indent=2)
`
82
96
``
83
``
`-
if name == 'main':
`
``
97
`+
if name == "main":
`
84
98
`sys.exit(main(sys.argv))
`