From 7ef705698e3d1f55c57380e8f88d5f40bcbc381f Mon Sep 17 00:00:00 2001 From: Fioren <102145692+FiorenMas@users.noreply.github.com> Date: Sun, 10 Mar 2024 01:45:52 +0700 Subject: [PATCH] fix :bug: --- src/build/utils.sh | 93 ++++++++++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 41 deletions(-) diff --git a/src/build/utils.sh b/src/build/utils.sh index ee324be..1f8c02a 100644 --- a/src/build/utils.sh +++ b/src/build/utils.sh @@ -16,50 +16,61 @@ red_log() { # Download Github assets requirement: dl_gh() { - local repo=$1 - for repo in $1 ; do - local owner=$2 tag=$3 found=0 assets=0 - releases=$(wget -qO- "https://api.github.com/repos/$owner/$repo/releases") - while read -r line; do - if [[ $line == *"\"tag_name\":"* ]]; then - tag_name=$(echo $line | cut -d '"' -f 4) - if [ "$tag" == "$tag_name" ] || [ "$tag" == "latest" ] || [ "$tag" == "prerelease" ]; then - found=1 - else - found=0 - fi - fi - if [[ $line == *"\"prerelease\":"* ]]; then - prerelease=$(echo $line | cut -d ' ' -f 2 | tr -d ',') - if [ "$tag" == "prerelease" ] && [ "$prerelease" == "false" ]; then - found=0 - elif [ "$tag" == "latest" ] && [ "$prerelease" == "true" ]; then - found=0 - fi - fi - if [[ $line == *"\"assets\":"* ]]; then - if [ $found -eq 1 ]; then - assets=1 - fi - fi - if [[ $line == *"\"browser_download_url\":"* ]]; then - if [ $assets -eq 1 ]; then - url=$(echo $line | cut -d '"' -f 4) - if [[ $url != *.asc ]]; then - name=$(basename "$url") - wget -q -O "$name" "$url" - green_log "[+] Downloading $name from $owner" + if [ $3 == "latest" ] || [ $3 == "prerelease" ]; then + local repo=$1 + for repo in $1 ; do + local owner=$2 tag=$3 found=0 assets=0 + releases=$(wget -qO- "https://api.github.com/repos/$owner/$repo/releases") + while read -r line; do + if [[ $line == *"\"tag_name\":"* ]]; then + tag_name=$(echo $line | cut -d '"' -f 4) + if [ "$tag" == "$tag_name" ] || [ "$tag" == "latest" ] || [ "$tag" == "prerelease" ]; then + found=1 + else + found=0 fi fi - fi - if [[ $line == *"],"* ]]; then - if [ $assets -eq 1 ]; then - assets=0 - break + if [[ $line == *"\"prerelease\":"* ]]; then + prerelease=$(echo $line | cut -d ' ' -f 2 | tr -d ',') + if [ "$tag" == "prerelease" ] && [ "$prerelease" == "false" ]; then + found=0 + elif [ "$tag" == "latest" ] && [ "$prerelease" == "true" ]; then + found=0 + fi fi - fi - done <<< "$releases" - done + if [[ $line == *"\"assets\":"* ]]; then + if [ $found -eq 1 ]; then + assets=1 + fi + fi + if [[ $line == *"\"browser_download_url\":"* ]]; then + if [ $assets -eq 1 ]; then + url=$(echo $line | cut -d '"' -f 4) + if [[ $url != *.asc ]]; then + name=$(basename "$url") + wget -q -O "$name" "$url" + green_log "[+] Downloading $name from $owner" + fi + fi + fi + if [[ $line == *"],"* ]]; then + if [ $assets -eq 1 ]; then + assets=0 + break + fi + fi + done <<< "$releases" + done + else + for repo in $1 ; do + wget -qO- "https://api.github.com/repos/$2/$repo/releases/tags/$3" \ + | jq -r '.assets[] | "\(.browser_download_url) \(.name)"' \ + | while read -r url names; do + green_log "[+] Downloading $names from $2" + wget -q -O "$names" $url + done + done + fi } #################################################