|
24 | 24 | # esp32-arduino-libs
|
25 | 25 | #
|
26 | 26 |
|
27 |
| -if [ $LIBS_HAS_COMMIT == "0" ] || [ $AR_HAS_COMMIT == "0" ]; then |
| 27 | +if [ $LIBS_HAS_ASSET == "0" ]; then |
28 | 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" |
| 29 | + mkdir -p dist |
| 30 | + |
| 31 | + # check if the release exists |
| 32 | + if [ $LIBS_HAS_RELEASE == "0" ]; then |
| 33 | + echo "Release for tag \"$LIBS_RELEASE_TAG\" not found. Please create the release first." |
40 | 34 | exit 1
|
41 | 35 | fi
|
42 | 36 |
|
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" |
| 37 | + LIBS_ZIP_FILENAME="esp32-arduino-libs-$LIBS_VERSION.zip" |
| 38 | + LIBS_JSON_FILENAME="package-$LIBS_VERSION.json" |
| 39 | + |
| 40 | + # create asset if necessary |
| 41 | + if [ "$LIBS_HAS_ASSET" == "0" ]; then |
| 42 | + echo "Creating asset '$LIBS_ZIP_FILENAME'..." |
| 43 | + |
| 44 | + mv -f "dist/esp32-arduino-libs.zip" "dist/$LIBS_ZIP_FILENAME" |
| 45 | + ASSET_UPLOAD_LINK=`github_release_asset_upload "$AR_LIBS_REPO" "$LIBS_RELEASE_ID" "$LIBS_ZIP_FILENAME" "dist/$LIBS_ZIP_FILENAME"` |
| 46 | + if [ -z "$ASSET_UPLOAD_LINK" ]; then |
| 47 | + echo "ERROR: Failed to upload asset '$LIBS_ZIP_FILENAME'" |
| 48 | + exit 1 |
| 49 | + fi |
50 | 50 | fi
|
51 | 51 |
|
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 |
| 52 | + local_checksum=$(sha256sum "dist/$LIBS_ZIP_FILENAME" | awk '{print $1}') |
| 53 | + size=$(stat -c%s "dist/$LIBS_ZIP_FILENAME") |
| 54 | + IDF_LIBS_DL_URL="https://github.com/$AR_LIBS_REPO/releases/download/$LIBS_RELEASE_TAG/$LIBS_ZIP_FILENAME" |
| 55 | + |
| 56 | + # Download the file |
| 57 | + remote_file="remote-$LIBS_ZIP_FILENAME" |
| 58 | + curl -s -o "$remote_file" "$IDF_LIBS_DL_URL" |
| 59 | + |
| 60 | + # Check if the download was successful |
| 61 | + if [ $? -ne 0 ]; then |
| 62 | + echo "Error downloading file from $IDF_LIBS_DL_URL. Retrying..." |
| 63 | + rm -f "$remote_file" |
| 64 | + curl -s -o "$remote_file" "$IDF_LIBS_DL_URL" |
56 | 65 | if [ $? -ne 0 ]; then
|
57 |
| - echo "ERROR: Pushing to branch '$AR_NEW_BRANCH_NAME' failed" |
| 66 | + echo "Error downloading file from $IDF_LIBS_DL_URL" |
58 | 67 | exit 1
|
59 | 68 | 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 |
| 69 | + fi |
63 | 70 |
|
64 |
| - # Download the file |
65 |
| - filename="esp32-arduino-libs-$IDF_LIBS_COMMIT.zip" |
66 |
| - curl -s -o "$filename" "$IDF_LIBS_DL_URL" |
| 71 | + # Calculate the SHA-256 sum |
| 72 | + remote_checksum=$(sha256sum "$remote_file" | awk '{print $1}') |
67 | 73 |
|
68 |
| - # Check if the download was successful |
| 74 | + # Check if the checksums match |
| 75 | + if [ "$local_checksum" != "$remote_checksum" ]; then |
| 76 | + echo "Checksum mismatch for downloaded file. Retrying..." |
| 77 | + rm "$remote_file" |
| 78 | + |
| 79 | + curl -s -o "$remote_file" "$IDF_LIBS_DL_URL" |
69 | 80 | if [ $? -ne 0 ]; then
|
70 |
| - echo "Error downloading file from $IDF_LIBS_DL_URL" |
71 |
| - exit 1 |
| 81 | + echo "Error downloading file from $IDF_LIBS_DL_URL" |
| 82 | + exit 1 |
72 | 83 | fi
|
73 | 84 |
|
74 |
| - # Calculate the size in bytes and SHA-256 sum |
75 |
| - size=$(stat -c%s "$filename") |
76 |
| - sha256sum=$(sha256sum "$filename" | awk '{print $1}') |
77 |
| - |
78 |
| - # Clean up the downloaded file |
79 |
| - rm "$filename" |
80 |
| - |
81 |
| - # Print the results |
82 |
| - echo "Tool: esp32-arduino-libs" |
83 |
| - 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" |
88 |
| - echo "JSON: $AR_OUT/package_esp32_index.template.json" |
89 |
| - 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" |
91 |
| - if [ $? -ne 0 ]; then exit 1; fi |
| 85 | + remote_checksum=$(sha256sum "$remote_file" | awk '{print $1}') |
| 86 | + if [ "$local_checksum" != "$remote_checksum" ]; then |
| 87 | + echo "Checksum mismatch for downloaded file after retry. Deleting asset and exiting..." |
| 88 | + if [ `github_release_asset_delete "$AR_LIBS_REPO" "$LIBS_ASSET_ID"` == "0" ]; then |
| 89 | + echo "ERROR: Failed to delete asset '$LIBS_ZIP_FILENAME'" |
| 90 | + fi |
| 91 | + exit 1 |
| 92 | + fi |
| 93 | + fi |
92 | 94 |
|
93 |
| - 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 |
| 95 | + # Clean up the downloaded file |
| 96 | + rm "$filename" |
| 97 | + |
| 98 | + # Print the results |
| 99 | + echo "Tool: esp32-arduino-libs" |
| 100 | + echo "Version: $LIBS_VERSION" |
| 101 | + echo "URL: $IDF_LIBS_DL_URL" |
| 102 | + echo "File: $LIBS_ZIP_FILENAME" |
| 103 | + echo "Size: $size bytes" |
| 104 | + echo "SHA-256: $sha256sum" |
| 105 | + echo "JSON: $AR_OUT/package_esp32_index.template.json" |
| 106 | + cd "$AR_ROOT" |
| 107 | + 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 "$LIBS_ZIP_FILENAME" -s "$size" -c "$sha256sum" |
| 108 | + if [ $? -ne 0 ]; then exit 1; fi |
| 109 | + |
| 110 | + if [ `github_release_asset_upload "$AR_LIBS_REPO" "$LIBS_RELEASE_ID" "$LIBS_JSON_FILENAME" "$AR_OUT/package_esp32_index.template.json"` == ""]; then |
| 111 | + echo "ERROR: Failed to upload asset '$LIBS_JSON_FILENAME'" |
| 112 | + exit 1 |
100 | 113 | fi
|
101 | 114 | fi
|
102 | 115 |
|
|
0 commit comments