|
#!/bin/sh
|
|
|
|
# This script checks availability of different Android source code sub-projects
|
|
# for a user-determined Android version (BASEVER) using a pre-defined Android
|
|
# platform manifest file as basis (XMLURL).
|
|
#
|
|
# Goal of this script is to automate detection of these sub-projects
|
|
# to help generating a valid Android platform manifest file for AOSP source code
|
|
# compilation.
|
|
|
|
BASEURL="https://android.googlesource.com/"
|
|
BASEVER="android-10.0.0_r41"
|
|
|
|
XMLURL="https://fjordtek.com/git/Fincer/anbox-platform_manifests/raw/branch/anbox/default.xml"
|
|
|
|
SUBURLS=()
|
|
NOK_SUBURLS=()
|
|
NOK_SUBURLS_VERSIONINFO=()
|
|
|
|
echo "
|
|
Target version: ${BASEVER}
|
|
Reference Android manifest: ${XMLURL}
|
|
"
|
|
|
|
for subUrl in $(curl -s ${XMLURL} | grep -oP '(?<=name=").*?(?=")' | tr '\n' ' '); do
|
|
SUBURLS+=(${subUrl})
|
|
done
|
|
|
|
for subUrl in ${SUBURLS[@]}; do
|
|
ANDROID_VERSIONS=$(curl -s ${BASEURL}${subUrl} | grep -oP '(?<=refs/tags/).*?(?=")' | tr '\n' ' ')
|
|
|
|
match=0
|
|
|
|
if [[ ${#ANDROID_VERSIONS[@]} != 0 ]]; then
|
|
|
|
for av in ${ANDROID_VERSIONS[@]}; do
|
|
if [[ ${av} == ${BASEVER} ]]; then
|
|
match=1
|
|
echo -e "OK\t${subUrl}"
|
|
break 1
|
|
fi
|
|
done
|
|
if [[ ${match} == 0 ]]; then
|
|
NOK_SUBURLS+=(${subUrl})
|
|
fi
|
|
else
|
|
NOK_SUBURLS_VERSIONINFO+=(${subUrl}})
|
|
fi
|
|
|
|
done
|
|
|
|
echo -e "\n"
|
|
|
|
if [[ ${#NOK_SUBURLS[@]} != 0 ]] || [[ ${#NOK_SUBURLS_VERSIONINFO[@]} != 0 ]]; then
|
|
echo -e "You may need to look for replacements or delete these ones from the provided manifest:\n"
|
|
fi
|
|
|
|
if [[ ${#NOK_SUBURLS[@]} != 0 ]]; then
|
|
echo -e "NOK sub urls are:\n$(for i in ${NOK_SUBURLS[@]}; do echo -e ${i}; done)\n"
|
|
fi
|
|
|
|
if [[ ${#NOK_SUBURLS_VERSIONINFO[@]} != 0 ]]; then
|
|
echo -e "Couldn't get Android versions for urls:\n$(for i in ${NOK_SUBURLS_VERSIONINFO[@]}; do echo -e ${i}; done)\n"
|
|
fi
|