Skip to content

Commit 444a379

Browse files
committed
Use jq to generate package json
1 parent 4bd694b commit 444a379

File tree

5 files changed

+209
-201
lines changed

5 files changed

+209
-201
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ tools/dist/
33
tools/xtensa-lx106-elf/
44
tools/esptool/
55
tools/mkspiffs/
6-
versions/
6+
package/versions/
77
exclude.txt

build_boards_manager_package.sh package/build_boards_manager_package.sh

+10-74
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,16 @@ echo "Package name: $package_name"
1717

1818
# Create directory for the package
1919
outdir=versions/$ver/$package_name
20-
srcdir=$PWD
20+
srcdir=$PWD/..
2121
rm -rf versions/$ver
2222
mkdir -p $outdir
2323

2424
# Some files should be excluded from the package
2525
cat << EOF > exclude.txt
26-
versions
2726
.git
2827
.gitignore
2928
.travis.yml
30-
build_boards_manager_package.sh
29+
package
3130
EOF
3231
# Also include all files which are ignored by git
3332
git ls-files --other --ignored --exclude-standard --directory >> exclude.txt
@@ -71,76 +70,13 @@ echo Size: $size
7170
echo SHA-256: $sha
7271

7372
echo "Making package_esp8266com_index.json"
74-
cat << EOF > package_esp8266com_index.json
75-
{
76-
"packages": [ {
77-
"name":"esp8266",
78-
"maintainer":"ESP8266 Community",
79-
"websiteURL":"https://github.com/esp8266/Arduino",
80-
"email":"[email protected]",
81-
"help":{
82-
"online":"$REMOTE_URL/versions/$ver/doc/reference.html"
83-
},
84-
85-
"platforms": [ {
86-
"name":"esp8266",
87-
"architecture":"esp8266",
88-
"version":"$ver",
89-
"category":"ESP8266",
90-
"url":"$REMOTE_URL/versions/$ver/$package_name.zip",
91-
"archiveFileName":"$package_name.zip",
92-
"checksum":"SHA-256:$sha",
93-
"size":"$size",
94-
"help":{
95-
"online":"$REMOTE_URL/versions/$ver/doc/reference.html"
96-
},
97-
"boards":[
98-
{
99-
"name":"Generic ESP8266 Module"
100-
},
101-
{
102-
"name":"Olimex MOD-WIFI-ESP8266(-DEV)"
103-
},
104-
{
105-
"name":"NodeMCU 0.9 (ESP-12 Module)"
106-
},
107-
{
108-
"name":"NodeMCU 1.0 (ESP-12E Module)"
109-
},
110-
{
111-
"name":"Adafruit HUZZAH ESP8266 (ESP-12)"
112-
},
113-
{
114-
"name":"SparkFun Thing"
115-
},
116-
{
117-
"name":"SweetPea ESP-210"
118-
}
119-
],
120-
"toolsDependencies":[ {
121-
"packager":"esp8266",
122-
"name":"esptool",
123-
"version":"0.4.6"
124-
},
125-
{
126-
"packager":"esp8266",
127-
"name":"xtensa-lx106-elf-gcc",
128-
"version":"1.20.0-26-gb404fb9-2"
129-
},
130-
{
131-
"packager":"esp8266",
132-
"name":"mkspiffs",
133-
"version":"0.1.2"
134-
} ]
135-
} ],
136-
"tools":
137-
EOF
138-
139-
cat $srcdir/tools/tools.json >> package_esp8266com_index.json
140-
141-
cat << EOF >> package_esp8266com_index.json
142-
} ]
143-
}
144-
EOF
73+
cat $srcdir/package/package_esp8266com_index.template.json | \
74+
jq ".packages[0].platforms[0].version = \"$ver\" | \
75+
.packages[0].platforms[0].url = \"$REMOTE_URL/versions/$ver/$package_name.zip\" |\
76+
.packages[0].platforms[0].archiveFileName = \"$package_name.zip\" |\
77+
.packages[0].platforms[0].checksum = \"SHA-256:$sha\" |\
78+
.packages[0].platforms[0].size = \"$size\" |\
79+
.packages[0].platforms[0].help.online = \"$REMOTE_URL/versions/$ver/doc/reference.html\"" \
80+
> package_esp8266com_index.json
14581

14682
popd
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
{
2+
"packages": [
3+
{
4+
"name": "esp8266",
5+
"maintainer": "ESP8266 Community",
6+
"websiteURL": "https://github.com/esp8266/Arduino",
7+
"email": "[email protected]",
8+
"help": {
9+
"online": "http://esp8266.com/arduino"
10+
},
11+
"platforms": [
12+
{
13+
"name": "esp8266",
14+
"architecture": "esp8266",
15+
"version": "",
16+
"category": "ESP8266",
17+
"url": "",
18+
"archiveFileName": "",
19+
"checksum": "",
20+
"size": "",
21+
"help": {
22+
"online": ""
23+
},
24+
"boards": [
25+
{
26+
"name": "Generic ESP8266 Module"
27+
},
28+
{
29+
"name": "Olimex MOD-WIFI-ESP8266(-DEV)"
30+
},
31+
{
32+
"name": "NodeMCU 0.9 (ESP-12 Module)"
33+
},
34+
{
35+
"name": "NodeMCU 1.0 (ESP-12E Module)"
36+
},
37+
{
38+
"name": "Adafruit HUZZAH ESP8266 (ESP-12)"
39+
},
40+
{
41+
"name": "SparkFun Thing"
42+
},
43+
{
44+
"name": "SweetPea ESP-210"
45+
}
46+
],
47+
"toolsDependencies": [
48+
{
49+
"packager": "esp8266",
50+
"name": "esptool",
51+
"version": "0.4.6"
52+
},
53+
{
54+
"packager": "esp8266",
55+
"name": "xtensa-lx106-elf-gcc",
56+
"version": "1.20.0-26-gb404fb9-2"
57+
},
58+
{
59+
"packager": "esp8266",
60+
"name": "mkspiffs",
61+
"version": "0.1.2"
62+
}
63+
]
64+
}
65+
],
66+
"tools": [
67+
{
68+
"name": "esptool",
69+
"version": "0.4.6",
70+
"systems": [
71+
{
72+
"host": "i686-mingw32",
73+
"url": "https://github.com/igrr/esptool-ck/releases/download/0.4.6/esptool-0.4.6-win32.zip",
74+
"archiveFileName": "esptool-0.4.6-win32.zip",
75+
"checksum": "SHA-256:0248bf78514a3195f583e29218ca7828a66e13c6e5545a078f1c1257033e4927",
76+
"size": "17481"
77+
},
78+
{
79+
"host": "x86_64-apple-darwin",
80+
"url": "https://github.com/igrr/esptool-ck/releases/download/0.4.6/esptool-0.4.6-osx.tar.gz",
81+
"archiveFileName": "esptool-0.4.6-osx.tar.gz",
82+
"checksum": "SHA-256:0fe87ba7e29ee90a9fc72492aada8c0796f9e8f8a1c594b6b26cee2610d09bb3",
83+
"size": "20926"
84+
},
85+
{
86+
"host": "i386-apple-darwin",
87+
"url": "https://github.com/igrr/esptool-ck/releases/download/0.4.6/esptool-0.4.6-osx.tar.gz",
88+
"archiveFileName": "esptool-0.4.6-osx.tar.gz",
89+
"checksum": "SHA-256:0fe87ba7e29ee90a9fc72492aada8c0796f9e8f8a1c594b6b26cee2610d09bb3",
90+
"size": "20926"
91+
},
92+
{
93+
"host": "x86_64-pc-linux-gnu",
94+
"url": "https://github.com/igrr/esptool-ck/releases/download/0.4.6/esptool-0.4.6-linux64.tar.gz",
95+
"archiveFileName": "esptool-0.4.6-linux64.tar.gz",
96+
"checksum": "SHA-256:f9f456e9a42bb2597126c513cb8865f923fb978865d4838b9623d322216b74d0",
97+
"size": "12885"
98+
},
99+
{
100+
"host": "i686-pc-linux-gnu",
101+
"url": "https://github.com/igrr/esptool-ck/releases/download/0.4.6/esptool-0.4.6-linux32.tar.gz",
102+
"archiveFileName": "esptool-0.4.6-linux32.tar.gz",
103+
"checksum": "SHA-256:85275ca03a82bfc456f5a84e86962ca1e470ea2e168829c38ca29ee668831d93",
104+
"size": "13417"
105+
}
106+
]
107+
},
108+
{
109+
"name": "xtensa-lx106-elf-gcc",
110+
"version": "1.20.0-26-gb404fb9-2",
111+
"systems": [
112+
{
113+
"host": "i686-mingw32",
114+
"url": "http://arduino.esp8266.com/win32-xtensa-lx106-elf-gb404fb9-2.tar.gz",
115+
"archiveFileName": "win32-xtensa-lx106-elf-gb404fb9-2.tar.gz",
116+
"checksum": "SHA-256:10476b9c11a7a90f40883413ddfb409f505b20692e316c4e597c4c175b4be09c",
117+
"size": "153527527"
118+
},
119+
{
120+
"host": "x86_64-apple-darwin",
121+
"url": "http://arduino.esp8266.com/osx-xtensa-lx106-elf-gb404fb9-2.tar.gz",
122+
"archiveFileName": "osx-xtensa-lx106-elf-gb404fb9-2.tar.gz",
123+
"checksum": "SHA-256:0cf150193997bd1355e0f49d3d49711730035257bc1aee1eaaad619e56b9e4e6",
124+
"size": "35385382"
125+
},
126+
{
127+
"host": "i386-apple-darwin",
128+
"url": "http://arduino.esp8266.com/osx-xtensa-lx106-elf-gb404fb9-2.tar.gz",
129+
"archiveFileName": "osx-xtensa-lx106-elf-gb404fb9-2.tar.gz",
130+
"checksum": "SHA-256:0cf150193997bd1355e0f49d3d49711730035257bc1aee1eaaad619e56b9e4e6",
131+
"size": "35385382"
132+
},
133+
{
134+
"host": "x86_64-pc-linux-gnu",
135+
"url": "http://arduino.esp8266.com/linux64-xtensa-lx106-elf-gb404fb9.tar.gz",
136+
"archiveFileName": "linux64-xtensa-lx106-elf-gb404fb9.tar.gz",
137+
"checksum": "SHA-256:46f057fbd8b320889a26167daf325038912096d09940b2a95489db92431473b7",
138+
"size": "30262903"
139+
},
140+
{
141+
"host": "i686-pc-linux-gnu",
142+
"url": "http://arduino.esp8266.com/linux32-xtensa-lx106-elf.tar.gz",
143+
"archiveFileName": "linux32-xtensa-lx106-elf.tar.gz",
144+
"checksum": "SHA-256:b24817819f0078fb05895a640e806e0aca9aa96b47b80d2390ac8e2d9ddc955a",
145+
"size": "32734156"
146+
}
147+
]
148+
},
149+
{
150+
"name": "mkspiffs",
151+
"version": "0.1.2",
152+
"systems": [
153+
{
154+
"host": "i686-mingw32",
155+
"url": "https://github.com/igrr/mkspiffs/releases/download/0.1.2/mkspiffs-0.1.2-windows.zip",
156+
"archiveFileName": "mkspiffs-0.1.2-windows.zip",
157+
"checksum": "SHA-256:0a29119b8458b61a877408f7995e4944623a712e0d313a2c2f76af9ab55cc9f2",
158+
"size": "230802"
159+
},
160+
{
161+
"host": "x86_64-apple-darwin",
162+
"url": "https://github.com/igrr/mkspiffs/releases/download/0.1.2/mkspiffs-0.1.2-osx.tar.gz",
163+
"archiveFileName": "mkspiffs-0.1.2-osx.tar.gz",
164+
"checksum": "SHA-256:df656fae21a41c1269ea50cb53752dcaf6a4e1437255f3a9fb50b4025549b58e",
165+
"size": "115091"
166+
},
167+
{
168+
"host": "i386-apple-darwin",
169+
"url": "https://github.com/igrr/mkspiffs/releases/download/0.1.2/mkspiffs-0.1.2-osx.tar.gz",
170+
"archiveFileName": "mkspiffs-0.1.2-osx.tar.gz",
171+
"checksum": "SHA-256:df656fae21a41c1269ea50cb53752dcaf6a4e1437255f3a9fb50b4025549b58e",
172+
"size": "115091"
173+
},
174+
{
175+
"host": "x86_64-pc-linux-gnu",
176+
"url": "https://github.com/igrr/mkspiffs/releases/download/0.1.2/mkspiffs-0.1.2-linux64.tar.gz",
177+
"archiveFileName": "mkspiffs-0.1.2-linux64.tar.gz",
178+
"checksum": "SHA-256:1a1dd81b51daf74c382db71b42251757ca4136e8762107e69feaa8617bac315f",
179+
"size": "46281"
180+
},
181+
{
182+
"host": "i686-pc-linux-gnu",
183+
"url": "https://github.com/igrr/mkspiffs/releases/download/0.1.2/mkspiffs-0.1.2-linux32.tar.gz",
184+
"archiveFileName": "mkspiffs-0.1.2-linux32.tar.gz",
185+
"checksum": "SHA-256:e990d545dfcae308aabaac5fa9e1db734cc2b08167969e7eedac88bd0839667c",
186+
"size": "45272"
187+
}
188+
]
189+
}
190+
]
191+
}
192+
]
193+
}

tools/get.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from __future__ import print_function
77
import urllib
88
import os
9+
import shutil
910
import errno
1011
import os.path
1112
import hashlib
@@ -56,7 +57,8 @@ def unpack(filename, destination):
5657
rename_to = re.match(r'^([a-z][^\-]*\-*)+', dirname).group(0).encode('ascii').strip('-')
5758
if rename_to != dirname:
5859
print('Renaming {0} to {1}'.format(dirname, rename_to))
59-
os.rename(dirname, rename_to)
60+
shutil.rmtree(rename_to)
61+
shutil.move(dirname, rename_to)
6062

6163
def get_tool(tool):
6264
archive_name = tool['archiveFileName']
@@ -77,7 +79,7 @@ def get_tool(tool):
7779
unpack(local_path, '.')
7880

7981
def load_tools_list(filename, platform):
80-
tools_info = json.load(open(filename))
82+
tools_info = json.load(open(filename))['packages'][0]['tools']
8183
tools_to_download = []
8284
for t in tools_info:
8385
tool_platform = [p for p in t['systems'] if p['host'] == platform]
@@ -97,7 +99,7 @@ def identify_platform():
9799

98100
if __name__ == '__main__':
99101
print('Platform: {0}'.format(identify_platform()))
100-
tools_to_download = load_tools_list('tools.json', identify_platform())
102+
tools_to_download = load_tools_list('../package/package_esp8266com_index.template.json', identify_platform())
101103
mkdir_p(dist_dir)
102104
for tool in tools_to_download:
103105
get_tool(tool)

0 commit comments

Comments
 (0)