This commit is contained in:
Fioren
2024-03-10 01:45:52 +07:00
committed by GitHub
parent 58f3d99c07
commit 7ef705698e

View File

@@ -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
}
#################################################