|
|
|
@ -18,7 +18,7 @@ echo "-- No, not the Official one --";
|
|
|
|
|
|
|
|
|
|
# Bin check
|
|
|
|
|
for bin in awk chmod cp curl grep head jq mv rm sort unzip wget; do
|
|
|
|
|
[ "$(which $bin)" ] || { echo " "; echo "FATAL: No $bin found"; return 1; }
|
|
|
|
|
[ "$(which $bin)" ] || { echo " " >&2; echo "FATAL: No $bin found" >&2; return 1; }
|
|
|
|
|
done;
|
|
|
|
|
|
|
|
|
|
echo " ";
|
|
|
|
@ -36,7 +36,7 @@ mkdir -p "$tmpdir" "$tmpdir/repos" "$(dirname "$updatelog")";
|
|
|
|
|
# Config
|
|
|
|
|
|
|
|
|
|
[ -f "$confdir/resdl-download.txt" ] || { echo " "; echo "F: No resdl-download.txt found"; return 1; }
|
|
|
|
|
eval "$(cat "$confdir/resdl-download.txt")" || { echo "FATAL: resdl-download.txt cannot be executed"; return 1; };
|
|
|
|
|
eval "$(cat "$confdir/resdl-download.txt")" || { echo " "; echo "FATAL: resdl-download.txt cannot be executed" >&2; return 1; };
|
|
|
|
|
|
|
|
|
|
if [ "$*" ]; then
|
|
|
|
|
echo " ";
|
|
|
|
@ -71,14 +71,14 @@ echo " - Downloading repos...";
|
|
|
|
|
for repo in $(echo "$stuff_repo" | awk '{ print $1 }'); do
|
|
|
|
|
line="$(echo "$stuff_repo" | grep -P "^[ \t]*$repo[ \t]+" | head -n1)";
|
|
|
|
|
repourl="$(echo "$line" | awk '{ print $2 }')";
|
|
|
|
|
[ "$repourl" ] || { echo "ERROR: Repo $repo has no URL"; continue; }
|
|
|
|
|
[ "$repourl" ] || { echo "ERROR: Repo $repo has no URL" >&2; continue; }
|
|
|
|
|
echo " -- REPO: Downloading repo $repo";
|
|
|
|
|
wget -q --show-progress "$repourl/index-v1.jar" -O "$tmpdir/repos/$repo.jar";
|
|
|
|
|
[ -f "$tmpdir/repos/$repo.jar" ] || { echo "ERROR: Repo $repo failed to download"; continue; }
|
|
|
|
|
[ -f "$tmpdir/repos/$repo.jar" ] || { echo "ERROR: Repo $repo failed to download" >&2; continue; }
|
|
|
|
|
unzip -oq "$tmpdir/repos/$repo.jar" "index-v1.json" -d "$tmpdir/repos/";
|
|
|
|
|
[ -f "$tmpdir/repos/index-v1.json" ] || { echo "ERROR: Repo $repo failed to unzip"; continue; }
|
|
|
|
|
[ -f "$tmpdir/repos/index-v1.json" ] || { echo "ERROR: Repo $repo failed to unzip" >&2; continue; }
|
|
|
|
|
mv -f "$tmpdir/repos/index-v1.json" "$tmpdir/repos/$repo.json";
|
|
|
|
|
[ -f "$tmpdir/repos/$repo.json" ] || { echo "ERROR: Repo $repo failed to rename"; continue; }
|
|
|
|
|
[ -f "$tmpdir/repos/$repo.json" ] || { echo "ERROR: Repo $repo failed to rename" >&2; continue; }
|
|
|
|
|
done;
|
|
|
|
|
|
|
|
|
|
# Download assets
|
|
|
|
@ -91,7 +91,7 @@ for object in $(echo "$stuff_download" | awk '{ print $1 }'); do
|
|
|
|
|
source="$(echo "$line" | awk '{ print $2 }')";
|
|
|
|
|
objectpath="$(echo "$line" | awk '{ print $3 }')";
|
|
|
|
|
objectarg="$(echo "$line" | awk '{ print $4 }')";
|
|
|
|
|
[ "$objectpath" ] || { echo "ERROR: $object has no source arguments"; continue; }
|
|
|
|
|
[ "$objectpath" ] || { echo "ERROR: $object has no source arguments" >&2; continue; }
|
|
|
|
|
echo " -- ASSET: Downloading object $object from source $source";
|
|
|
|
|
case "$source" in
|
|
|
|
|
local)
|
|
|
|
@ -109,17 +109,17 @@ for object in $(echo "$stuff_download" | awk '{ print $1 }'); do
|
|
|
|
|
gitlab)
|
|
|
|
|
echo " ---- Getting GitLab project ID for $object";
|
|
|
|
|
objectid="$(curl -sN https://gitlab.com/$objectpath | grep "Project ID" | head -n1 | awk '{ print $3 }')";
|
|
|
|
|
[ "$objectid" ] || { echo "ERROR: $object gitlab project ID not found"; continue; }
|
|
|
|
|
[ "$objectid" ] || { echo "ERROR: $object gitlab project ID not found" >&2; continue; }
|
|
|
|
|
echo " ---- Getting GitLab URL for $object";
|
|
|
|
|
objectupload="$(curl -sN "https://gitlab.com/api/v4/projects/$objectid/repository/tags" | jq -r '.[].release.description' | grep -Po "(/uploads/[^()]*$objectarg)" | head -n1 | tr -d "()")";
|
|
|
|
|
[ "$objectupload" ] || { echo "ERROR: $object gitlab project upload not found"; continue; }
|
|
|
|
|
[ "$objectupload" ] || { echo "ERROR: $object gitlab project upload not found" >&2; continue; }
|
|
|
|
|
objecturl="https://gitlab.com/$objectpath$objectupload";
|
|
|
|
|
;;
|
|
|
|
|
repo)
|
|
|
|
|
objectrepo="$(dirname "$objectpath")";
|
|
|
|
|
objectpackage="$(basename "$objectpath")";
|
|
|
|
|
[ "$objectrepo" -a "$objectpackage" ] || { echo "ERROR: $object has no valid repo arguments"; continue; }
|
|
|
|
|
[ -f "$tmpdir/repos/$objectrepo.json" ] || { echo "ERROR: $object repo $objectrepo does not exist"; continue; }
|
|
|
|
|
[ "$objectrepo" -a "$objectpackage" ] || { echo "ERROR: $object has no valid repo arguments" >&2; continue; }
|
|
|
|
|
[ -f "$tmpdir/repos/$objectrepo.json" ] || { echo "ERROR: $object repo $objectrepo does not exist" >&2; continue; }
|
|
|
|
|
echo " ---- Getting repo URL for $object from repo $repo";
|
|
|
|
|
objectserver="$(jq -r '.repo.address' "$tmpdir/repos/$objectrepo.json")";
|
|
|
|
|
if [ "$objectarg" ]; then
|
|
|
|
@ -128,25 +128,25 @@ for object in $(echo "$stuff_download" | awk '{ print $1 }'); do
|
|
|
|
|
else
|
|
|
|
|
objectserverfile="$(jq -r --arg pkg "$objectpackage" '.packages[$pkg][].apkName' "$tmpdir/repos/$objectrepo.json" | head -n1)";
|
|
|
|
|
fi;
|
|
|
|
|
[ "$objectserver" -a "$objectserverfile" ] || { echo "ERROR: $object has no URL available"; continue; }
|
|
|
|
|
[ "$objectserver" -a "$objectserverfile" ] || { echo "ERROR: $object has no URL available" >&2; continue; }
|
|
|
|
|
objecturl="$objectserver/$objectserverfile";
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
echo "ERROR: Source $source for $object unknown";
|
|
|
|
|
echo "ERROR: Source $source for $object unknown" >&2;
|
|
|
|
|
;;
|
|
|
|
|
esac;
|
|
|
|
|
[ "$objecturl" ] || { echo "ERROR: $object has no URL available"; continue; }
|
|
|
|
|
[ "$objecturl" ] || { echo "ERROR: $object has no URL available" >&2; continue; }
|
|
|
|
|
objectname="$(basename "$objecturl")";
|
|
|
|
|
objectfile="$tmpdir/$objectname";
|
|
|
|
|
echo " ---- Downloading $objecturl";
|
|
|
|
|
wget -q --show-progress "$objecturl" -O "$objectfile" || { echo "ERROR: $object failed to download"; continue; }
|
|
|
|
|
[ -f "$objectfile" ] || { echo "ERROR: $object failed to download"; continue; }
|
|
|
|
|
wget -q --show-progress "$objecturl" -O "$objectfile" || { echo "ERROR: $object failed to download" >&2; continue; }
|
|
|
|
|
[ -f "$objectfile" ] || { echo "ERROR: $object failed to download" >&2; continue; }
|
|
|
|
|
echo "NAME: $objectname, FILE: $object, URL: $objecturl;" >> "$updatelog";
|
|
|
|
|
;;
|
|
|
|
|
esac;
|
|
|
|
|
mkdir -p "$resdldir/$(dirname "$object")";
|
|
|
|
|
mv -f "$objectfile" "$resdldir/$object";
|
|
|
|
|
[ -f "$resdldir/$object" ] || { echo "ERROR: $object failed to copy"; continue; }
|
|
|
|
|
[ -f "$resdldir/$object" ] || { echo "ERROR: $object failed to copy" >&2; continue; }
|
|
|
|
|
done;
|
|
|
|
|
|
|
|
|
|
# Post update actions
|
|
|
|
|