1
1
#! /bin/bash
2
- source ./tools/config.sh
2
+
3
+ source ./tools/install-arduino.sh
3
4
4
5
if [ -x $GITHUB_TOKEN ]; then
5
6
echo " ERROR: GITHUB_TOKEN was not defined"
6
7
exit 1
7
8
fi
8
9
9
- if ! [ -d " $AR_COMPS /arduino" ]; then
10
- echo " ERROR: Target arduino folder does not exist!"
11
- exit 1
12
- fi
13
-
14
10
# setup git for pushing
15
11
git config --global github.user " $GITHUB_ACTOR "
16
12
git config --global user.name " $GITHUB_ACTOR "
@@ -24,79 +20,112 @@ git config --global user.email "$GITHUB_ACTOR@github.com"
24
20
# esp32-arduino-libs
25
21
#
26
22
27
- if [ $LIBS_HAS_COMMIT == " 0" ] || [ $AR_HAS_COMMIT == " 0" ]; then
28
- cd " $AR_ROOT "
29
- # create branch if necessary
30
- if [ " $LIBS_HAS_BRANCH " == " 1" ]; then
31
- echo " Branch '$AR_NEW_BRANCH_NAME ' Already Exists"
32
- echo " Switching to esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME '..."
33
- git -C " $IDF_LIBS_DIR " checkout $AR_NEW_BRANCH_NAME
34
- else
35
- echo " Creating esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME '..."
36
- git -C " $IDF_LIBS_DIR " checkout -b $AR_NEW_BRANCH_NAME
37
- fi
38
- if [ $? -ne 0 ]; then
39
- echo " ERROR: Checkout of branch '$AR_NEW_BRANCH_NAME ' failed"
40
- exit 1
41
- fi
23
+ LIBS_ZIP_FILENAME=" esp32-arduino-libs-$LIBS_VERSION .zip"
24
+ LIBS_JSON_FILENAME=" package-$LIBS_VERSION .json"
25
+ IDF_LIBS_ZIP_URL=" https://github.com/$AR_LIBS_REPO /releases/download/$LIBS_RELEASE_TAG /$LIBS_ZIP_FILENAME "
26
+ IDF_LIBS_JSON_URL=" https://github.com/$AR_LIBS_REPO /releases/download/$LIBS_RELEASE_TAG /$LIBS_JSON_FILENAME "
42
27
43
- # make changes to the files
44
- echo " Patching files in esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME '..."
45
- rm -rf $IDF_LIBS_DIR /* && cp -Rf $AR_TOOLS /esp32-arduino-libs/* $IDF_LIBS_DIR /
46
-
47
- cd $IDF_LIBS_DIR
48
- if [ -f " README.md" ]; then
49
- rm -rf " README.md"
50
- fi
28
+ if [ $AR_HAS_COMMIT == " 0" ]; then
29
+ if [ $LIBS_HAS_ASSET == " 0" ]; then
30
+ cd " $AR_ROOT "
31
+ mkdir -p dist
51
32
52
- # did any of the files change?
53
- if [ -n " $( git status --porcelain) " ]; then
54
- echo " Pushing changes to esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME '..."
55
- git add . && git commit --message " $AR_NEW_COMMIT_MESSAGE " && git push -u origin $AR_NEW_BRANCH_NAME
56
- if [ $? -ne 0 ]; then
57
- echo " ERROR: Pushing to branch '$AR_NEW_BRANCH_NAME ' failed"
33
+ # check if the release exists
34
+ if [ $LIBS_HAS_RELEASE == " 0" ]; then
35
+ echo " Release for tag \" $LIBS_RELEASE_TAG \" not found. Please create the release first."
58
36
exit 1
59
37
fi
60
- IDF_LIBS_COMMIT=` git rev-parse --verify HEAD`
61
- IDF_LIBS_DL_URL=" https://codeload.github.com/espressif/esp32-arduino-libs/zip/$IDF_LIBS_COMMIT "
62
- # ToDo: this URL needs to get into Arduino's package.json
38
+
39
+ echo " Creating asset '$LIBS_ZIP_FILENAME '..."
40
+
41
+ mv -f " dist/esp32-arduino-libs.zip" " dist/$LIBS_ZIP_FILENAME "
42
+ LIBS_ASSET_ID=` github_release_asset_upload " $AR_LIBS_REPO " " $LIBS_RELEASE_ID " " $LIBS_ZIP_FILENAME " " dist/$LIBS_ZIP_FILENAME " `
43
+ if [ -z " $LIBS_ASSET_ID " ]; then
44
+ echo " ERROR: Failed to upload asset '$LIBS_ZIP_FILENAME '"
45
+ exit 1
46
+ fi
47
+
48
+ echo " Finished uploading asset '$LIBS_ZIP_FILENAME '. Asset ID: $LIBS_ASSET_ID "
49
+
50
+ # Calculate the local file checksum and size
51
+ local_checksum=$( sha256sum " dist/$LIBS_ZIP_FILENAME " | awk ' {print $1}' )
52
+ local_size=$( stat -c%s " dist/$LIBS_ZIP_FILENAME " )
53
+
54
+ echo " Downloading asset '$LIBS_ZIP_FILENAME ' and checking integrity..."
63
55
64
56
# Download the file
65
- filename= " esp32-arduino-libs- $IDF_LIBS_COMMIT .zip "
66
- curl -s -o " $filename " " $IDF_LIBS_DL_URL "
57
+ remote_file= " remote- $LIBS_ZIP_FILENAME "
58
+ curl -s -L - o " $remote_file " " $IDF_LIBS_ZIP_URL "
67
59
68
60
# Check if the download was successful
69
61
if [ $? -ne 0 ]; then
70
- echo " Error downloading file from $IDF_LIBS_DL_URL "
71
- exit 1
62
+ echo " Error downloading file from $IDF_LIBS_ZIP_URL "
63
+ exit 1
72
64
fi
73
65
74
- # Calculate the size in bytes and SHA-256 sum
75
- size=$( stat -c%s " $filename " )
76
- sha256sum=$( sha256sum " $filename " | awk ' {print $1}' )
66
+ # Calculate the remote file checksum and size
67
+ remote_checksum=$( sha256sum " $remote_file " | awk ' {print $1}' )
68
+ remote_size=$( stat -c%s " $remote_file " )
69
+
70
+ echo " Local: $local_size bytes, $local_checksum "
71
+ echo " Remote: $remote_size bytes, $remote_checksum "
72
+
73
+ # Check if the checksums match
74
+ if [ " $local_checksum " != " $remote_checksum " ]; then
75
+ echo " Checksum mismatch for downloaded file"
76
+ echo " Deleting asset and exiting..."
77
+ if [ ` github_release_asset_delete " $AR_LIBS_REPO " " $LIBS_ASSET_ID " ` == " 0" ]; then
78
+ echo " ERROR: Failed to delete asset '$LIBS_ZIP_FILENAME '"
79
+ fi
80
+ exit 1
81
+ fi
77
82
78
83
# Clean up the downloaded file
79
- rm " $filename "
84
+ rm " $remote_file "
80
85
81
86
# Print the results
82
87
echo " Tool: esp32-arduino-libs"
83
88
echo " Version: $LIBS_VERSION "
84
- echo " URL: $IDF_LIBS_DL_URL "
85
- echo " File: $filename "
86
- echo " Size: $size bytes"
87
- echo " SHA-256: $sha256sum "
89
+ echo " URL: $IDF_LIBS_ZIP_URL "
90
+ echo " File: $LIBS_ZIP_FILENAME "
91
+ echo " Size: $local_size bytes"
92
+ echo " SHA-256: $local_checksum "
88
93
echo " JSON: $AR_OUT /package_esp32_index.template.json"
89
94
cd " $AR_ROOT "
90
- python3 tools/add_sdk_json.py -j " $AR_OUT /package_esp32_index.template.json" -n " esp32-arduino-libs" -v " $LIBS_VERSION " -u " $IDF_LIBS_DL_URL " -f " $filename " -s " $size " -c " $sha256sum "
95
+ python3 tools/add_sdk_json.py -j " $AR_OUT /package_esp32_index.template.json" -n " esp32-arduino-libs" -v " $LIBS_VERSION " -u " $IDF_LIBS_ZIP_URL " -f " $LIBS_ZIP_FILENAME " -s " $local_size " -c " $local_checksum "
91
96
if [ $? -ne 0 ]; then exit 1; fi
92
97
98
+ JSON_ASSET_ID=` github_release_asset_upload " $AR_LIBS_REPO " " $LIBS_RELEASE_ID " " $LIBS_JSON_FILENAME " " $AR_OUT /package_esp32_index.template.json" `
99
+ if [ -z " $JSON_ASSET_ID " ]; then
100
+ echo " ERROR: Failed to upload asset '$LIBS_JSON_FILENAME '"
101
+ exit 1
102
+ fi
93
103
else
94
- echo " No changes in esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME '"
95
- if [ $LIBS_HAS_BRANCH == " 0" ]; then
96
- echo " Delete created branch '$AR_NEW_BRANCH_NAME '"
97
- git branch -d $AR_NEW_BRANCH_NAME
98
- fi
99
- exit 0
104
+ cd " $AR_ROOT "
105
+ mkdir -p $AR_TOOLS
106
+
107
+ echo " Asset '$LIBS_ZIP_FILENAME ' already exists. Downloading..."
108
+
109
+ curl -s -L -o " $LIBS_ZIP_FILENAME " " $IDF_LIBS_ZIP_URL "
110
+ if [ $? -ne 0 ]; then
111
+ echo " ERROR: Failed to download asset '$LIBS_ZIP_FILENAME '"
112
+ exit 1
113
+ fi
114
+
115
+ unzip -o " $LIBS_ZIP_FILENAME " -d " $AR_OUT /tools"
116
+
117
+ JSON_ASSET_ID=` github_release_asset_id " $AR_LIBS_REPO " " $LIBS_RELEASE_ID " " $LIBS_JSON_FILENAME " `
118
+ if [ -z " $JSON_ASSET_ID " ]; then
119
+ echo " ERROR: JSON file '$LIBS_JSON_FILENAME ' not found. Deleting asset '$LIBS_ZIP_FILENAME ' and exiting..."
120
+ if [ " ` github_release_asset_delete " $AR_LIBS_REPO " " $LIBS_ASSET_ID " ` " == " 0" ]; then
121
+ echo " ERROR: Failed to delete asset '$LIBS_ZIP_FILENAME '"
122
+ fi
123
+ exit 1
124
+ fi
125
+
126
+ echo " JSON asset ID: $JSON_ASSET_ID "
127
+ echo " Downloading JSON asset '$LIBS_JSON_FILENAME '..."
128
+ curl -s -L -o " $AR_OUT /package_esp32_index.template.json" " $IDF_LIBS_JSON_URL "
100
129
fi
101
130
fi
102
131
@@ -122,7 +151,7 @@ if [ $AR_HAS_COMMIT == "0" ]; then
122
151
# make changes to the files
123
152
echo " Patching files in branch '$AR_NEW_BRANCH_NAME '..."
124
153
rm -rf " $AR_COMPS /arduino/package/package_esp32_index.template.json" && cp -f " $AR_OUT /package_esp32_index.template.json" " $AR_COMPS /arduino/package/package_esp32_index.template.json"
125
-
154
+
126
155
cd $AR_COMPS /arduino
127
156
128
157
# did any of the files change?
0 commit comments