Skip to content

Commit 4bd694b

Browse files
committed
Add script to build boards manager package, update .gitignore
1 parent 17e7893 commit 4bd694b

File tree

2 files changed

+152
-78
lines changed

2 files changed

+152
-78
lines changed

.gitignore

+6-78
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,7 @@
1-
app/bin/
2-
app/pde.jar
3-
build/macosx/work/
4-
arduino-core/bin/
5-
arduino-core/arduino-core.jar
6-
hardware/arduino/bootloaders/caterina_LUFA/Descriptors.o
7-
hardware/arduino/bootloaders/caterina_LUFA/Descriptors.lst
8-
hardware/arduino/bootloaders/caterina_LUFA/Caterina.sym
9-
hardware/arduino/bootloaders/caterina_LUFA/Caterina.o
10-
hardware/arduino/bootloaders/caterina_LUFA/Caterina.map
11-
hardware/arduino/bootloaders/caterina_LUFA/Caterina.lst
12-
hardware/arduino/bootloaders/caterina_LUFA/Caterina.lss
13-
hardware/arduino/bootloaders/caterina_LUFA/Caterina.elf
14-
hardware/arduino/bootloaders/caterina_LUFA/Caterina.eep
15-
hardware/arduino/bootloaders/caterina_LUFA/.dep/
16-
build/*.zip
17-
build/windows/work/
18-
build/windows/*.zip
19-
build/windows/*.tgz
20-
build/windows/libastylej*
21-
build/windows/arduino-*.zip
22-
build/windows/dist/*.tar.gz
23-
build/windows/dist/*.tar.bz2
24-
build/windows/launch4j-*.tgz
25-
build/windows/launch4j-*.zip
26-
build/windows/launcher/launch4j
27-
build/windows/WinAVR-*.zip
28-
build/macosx/arduino-*.zip
29-
build/macosx/dist/*.tar.gz
30-
build/macosx/dist/*.tar.bz2
31-
build/macosx/*.tar.bz2
32-
build/macosx/libastylej*
33-
build/macosx/appbundler*.jar
34-
build/macosx/appbundler*.zip
35-
build/macosx/appbundler
36-
build/macosx/appbundler-1.0ea-arduino2
37-
build/macosx/appbundler-1.0ea-upstream1
38-
build/linux/work/
39-
build/linux/dist/*.tar.gz
40-
build/linux/dist/*.tar.bz2
41-
build/linux/*.tgz
42-
build/linux/*.tar.xz
43-
build/linux/*.tar.bz2
44-
build/linux/*.zip
45-
build/linux/libastylej*
46-
build/shared/reference*.zip
47-
build/shared/Edison*.zip
48-
build/shared/Galileo*.zip
49-
test-bin
50-
*.iml
51-
.idea
521
.DS_Store
53-
.directory
54-
hardware/arduino/avr/libraries/Bridge/examples/XivelyClient/passwords.h
55-
avr-toolchain-*.zip
56-
/hardware/tools/esp8266/utils/
57-
/hardware/tools/esp8266/xtensa-lx106-elf
58-
/hardware/tools/esp8266/esptool.exe
59-
/hardware/esp8266com/esp8266/tools/xtensa*
60-
/hardware/esp8266com/esp8266/tools/esptool*
61-
/hardware/esp8266com/esp8266/tools/utils
62-
/hardware/tools/avr/
63-
/hardware/tools/gcc-arm-none-eabi-4.8.3-2014q1/
64-
/hardware/tools/bossac.exe
65-
/hardware/tools/listComPorts.exe
66-
67-
/app/nbproject/private/
68-
/arduino-core/nbproject/private/
69-
/app/build/
70-
/arduino-core/build/
71-
72-
manifest.mf
73-
nbbuild.xml
74-
nbproject
75-
build/macosx/esptool-*-osx.zip
76-
77-
build/macosx/dist/osx-xtensa-lx106-elf.tgz
78-
/docs/lib_dump/full
79-
/docs/lib_dump
2+
tools/dist/
3+
tools/xtensa-lx106-elf/
4+
tools/esptool/
5+
tools/mkspiffs/
6+
versions/
7+
exclude.txt

build_boards_manager_package.sh

+146
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
#!/bin/bash
2+
#
3+
4+
# Set REMOTE_URL environment variable to the address where the package will be
5+
# available for download. This gets written into package json file.
6+
if [ -z "$REMOTE_URL" ]; then
7+
REMOTE_URL="http://localhost:8000"
8+
echo "REMOTE_URL not defined, using default"
9+
fi
10+
echo "Remote: $REMOTE_URL"
11+
12+
# Figure out how will the package be called
13+
ver=`git describe --tags --always`
14+
package_name=esp8266-$ver
15+
echo "Version: $ver"
16+
echo "Package name: $package_name"
17+
18+
# Create directory for the package
19+
outdir=versions/$ver/$package_name
20+
srcdir=$PWD
21+
rm -rf versions/$ver
22+
mkdir -p $outdir
23+
24+
# Some files should be excluded from the package
25+
cat << EOF > exclude.txt
26+
versions
27+
.git
28+
.gitignore
29+
.travis.yml
30+
build_boards_manager_package.sh
31+
EOF
32+
# Also include all files which are ignored by git
33+
git ls-files --other --ignored --exclude-standard --directory >> exclude.txt
34+
# Now copy files to $outdir
35+
rsync -a --exclude-from 'exclude.txt' $srcdir/ $outdir/
36+
rm exclude.txt
37+
38+
# Get additional libraries (TODO: add them as git submodule or subtree?)
39+
wget -q -O SoftwareSerial.zip https://github.com/plerup/espsoftwareserial/archive/38259afcab9c291dbb6216f827d9a3738abf1868.zip
40+
unzip -q SoftwareSerial.zip
41+
rm -rf SoftwareSerial.zip
42+
mv espsoftwareserial-* SoftwareSerial
43+
mv SoftwareSerial $outdir/libraries
44+
45+
# For compatibility, on OS X we need GNU sed which is usually called 'gsed'
46+
if [ "$(uname)" == "Darwin" ]; then
47+
SED=gsed
48+
else
49+
SED=sed
50+
fi
51+
52+
# Do some replacements in platform.txt file, which are required because IDE
53+
# handles tool paths differently when package is installed in hardware folder
54+
cat $srcdir/platform.txt | \
55+
$SED 's/runtime.tools.xtensa-lx106-elf-gcc.path={runtime.platform.path}\/tools\/xtensa-lx106-elf//g' | \
56+
$SED 's/runtime.tools.esptool.path={runtime.platform.path}\/tools\/esptool//g' | \
57+
$SED 's/tools.esptool.path={runtime.platform.path}\/tools\/esptool/tools.esptool.path=\{runtime.tools.esptool.path\}/g' | \
58+
$SED 's/tools.mkspiffs.path={runtime.platform.path}\/tools\/mkspiffs/tools.mkspiffs.path=\{runtime.tools.mkspiffs.path\}/g' \
59+
> $outdir/platform.txt
60+
61+
# Zip the package
62+
pushd versions/$ver
63+
echo "Making $package_name.zip"
64+
zip -qr $package_name.zip $package_name
65+
rm -rf $package_name
66+
67+
# Calculate SHA sum and size
68+
sha=`shasum -a 256 $package_name.zip | cut -f 1 -d ' '`
69+
size=`/bin/ls -l $package_name.zip | awk '{print $5}'`
70+
echo Size: $size
71+
echo SHA-256: $sha
72+
73+
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
145+
146+
popd

0 commit comments

Comments
 (0)