-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlittlefs-build-mac
executable file
·113 lines (101 loc) · 3.61 KB
/
littlefs-build-mac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/bin/sh
cd "$(dirname "$0")"
echo "\x1b[32m\n1) ESP8266 \n2) ESP32\n\x1b[0m\nEnter 1 or 2"
read esp
if [ $esp = 1 ]; then
esp_path_hardware=~/Library/Arduino15/packages/esp8266/hardware/esp8266
esp_path_littlefs=~/Library/Arduino15/packages/esp8266/tools/mklittlefs
else
esp_path_hardware=~/Library/Arduino15/packages/esp32/hardware/esp32
esp_path_littlefs=~/Library/Arduino15/packages/esp32/tools/mklittlefs
fi
for dir in $(find $esp_path_hardware -depth 1 -type d); do
esp_version="$(basename $dir)"
break
done
for dir in $(find $esp_path_littlefs -depth 1 -type d); do
gcc="$(basename $dir)"
break
done
if ! [ -f $(which python) ]; then
echo "...Issue with Python, Fix?"
sudo mkdir -p -m 775 /usr/local/bin
sudo ln -s -f $(which python3) /usr/local/bin/python
fi
#Copy Web Files
rm -rf data
cp -rf Web data
rm -rf data/img
rm -rf data/svg/extra
rm -rf data/nvram.json
rm -rf data/svg/index.html
if [ $esp != 1 ]; then
rm -rf data/js/chartjs-plugin-annotation.js
fi
mkdir data/img
cp -rf Web/img/cert.svg data/img
cp -rf Web/img/eye-slash.svg data/img
cp -rf Web/img/eye-slash-fill.svg data/img
purgecss --css data/roundslider.css --content data/*.html --whitelist --output data/css/roundslider.css
purgecss --css data/rangeslider.css --content data/*.html --whitelist --output data/css/rangeslider.css
echo "> Build with Extra SVG? (y/n)"
read yn
if [ $yn = y ]; then
n=1
echo "\x1b[32m"
for f in $(find Web/svg/extra -type f -name '*.svg'); do
echo "$n) $f"
((++n))
done
echo "\x1b[0m"
read svgfile
n=1
for f in $(find Web/svg/extra -type f -name '*.svg'); do
if [ $svgfile = $n ]; then
#extension="${f##*.}"
filename="${f%.*}"
cp -rf "$filename.svg" data/svg
cp -rf "$filename.css" data/svg
fi
((++n))
done
#for f in $(find Web/svg/extra -type f -name '*.*'); do
# cp -rf $f data/svg
#done
fi
#Compress Web Files
echo "> Compress Javascript? (y/n)"
read yn
if [ $yn = y ]; then
for f in $(find data -type f -name '*.js'); do
closure-compiler --strict_mode_input=false --language_in ECMASCRIPT5 --js_output_file "$f-min.js" --js "$f"
mv "$f-min.js" "$f"
done
fi
for f in $(find data -type f -name '*.*' ! -name '*.key' ! -name '*.cer'); do
gzip "$f"
mv "$f.gz" "$f"
done
#Build LittleFS
mkdir -p build
if [ $esp = 1 ]; then
#Sign LittleFS
#_signed_size: 2072576 - 8192 = 2064384
#_signature: 256
#_signature_length: 4
$esp_path_littlefs/$gcc/mklittlefs -c ./data/ -b 8192 -p 256 -d 5 -s 2064384 ./build/flash-littlefs.bin
$esp_path_hardware/$esp_version/tools/signing.py --mode sign --privatekey ./private.key --bin ./build/flash-littlefs.bin --out ./build/flash-littlefs.bin.signed
#_start: 0x00200000 (2097152)
#_size: 0x001FA000 (2072576)
$esp_path_littlefs/$gcc/mklittlefs -c ./data/ -b 8192 -p 256 -d 5 -s 2072576 ./build/flash-littlefs.bin
else
#_start: 0x00210000 (2162688)
#_size: 0x001F0000 (2031616)
#$esp_path_littlefs/$gcc/mklittlefs -c ./data/ -b 4096 -p 256 -d 5 -s 2031616 ./build/flash-littlefs.bin
#$esp_path_littlefs/$gcc/mklittlefs -c ./data/ -b 4096 -p 256 -d 5 -s 1036288 ./build/flash-littlefs.bin
#$esp_path_littlefs/$gcc/mklittlefs -c ./data/ -b 4096 -p 256 -d 5 -s 518144 ./build/flash-littlefs.bin
$esp_path_littlefs/$gcc/mklittlefs -c ./data/ -b 4096 -p 256 -d 5 -s 283648 ./build/flash-littlefs.bin
fi
#Compress LittleFS
#gzip -9 ./build/flash-littlefs.bin
#mv ./build/flash-littlefs.bin.gz ./build/flash-littlefs.bin