mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 05:36:47 +00:00
update_binary-addons: validate package urls against kodi urls
This commit is contained in:
parent
76952dbaa2
commit
fd054a49d8
@ -72,6 +72,22 @@ geturl() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# For the specified addon, verify that the package url
|
||||||
|
# matches the url retrieved from Kodi
|
||||||
|
validate_pkg_url() {
|
||||||
|
local addon="$1" url1="$2"
|
||||||
|
local domain owner repo url2
|
||||||
|
|
||||||
|
domain="$(echo "${url1}" | cut -d/ -f3)"
|
||||||
|
owner="$(echo "${url1}" | cut -d/ -f4)"
|
||||||
|
repo="$(echo "${url1}" | cut -d/ -f5)"
|
||||||
|
|
||||||
|
url1="git://${domain}/${owner}/${repo}.git"
|
||||||
|
url2="$(geturl "${addon}")"
|
||||||
|
|
||||||
|
[ "${url1}" = "${url2}" ] && return 0 || return 1
|
||||||
|
}
|
||||||
|
|
||||||
if [ ! -d $KODI_DIR ] ; then
|
if [ ! -d $KODI_DIR ] ; then
|
||||||
echo "meh.. $KODI_DIR does not exist"
|
echo "meh.. $KODI_DIR does not exist"
|
||||||
exit 127
|
exit 127
|
||||||
@ -105,9 +121,6 @@ if [ -f ../../packages/mediacenter/kodi-platform/package.mk ] ; then
|
|||||||
fi
|
fi
|
||||||
rm -rf $PKG_NAME.git
|
rm -rf $PKG_NAME.git
|
||||||
|
|
||||||
PROCESSED=/tmp/update_binary_addons.dat
|
|
||||||
rm -f ${PROCESSED}
|
|
||||||
|
|
||||||
# addons
|
# addons
|
||||||
for addontxt in $KODI_DIR/project/cmake/addons/bootstrap/repositories/*-addons.txt ; do
|
for addontxt in $KODI_DIR/project/cmake/addons/bootstrap/repositories/*-addons.txt ; do
|
||||||
ADDONS=$(cat $addontxt | awk '{print $1}')
|
ADDONS=$(cat $addontxt | awk '{print $1}')
|
||||||
@ -120,7 +133,11 @@ for addontxt in $KODI_DIR/project/cmake/addons/bootstrap/repositories/*-addons.t
|
|||||||
GIT_HASH=$(cat $addon/$ADDON.txt | awk '{print $3}')
|
GIT_HASH=$(cat $addon/$ADDON.txt | awk '{print $3}')
|
||||||
PKG_NAME="$ADDON"
|
PKG_NAME="$ADDON"
|
||||||
|
|
||||||
echo "${PKG_NAME}" >> ${PROCESSED}
|
# Verify the Kodi repo matches our package repo
|
||||||
|
# If different, ignore the addon and process it later as an "unofficial" addon
|
||||||
|
validate_pkg_url "$ADDON" "$REPO" || continue
|
||||||
|
|
||||||
|
PROCESSED="${PROCESSED}${PKG_NAME}\n"
|
||||||
|
|
||||||
if ! grep -q all $addon/platforms.txt && ! grep -q linux $addon/platforms.txt && ! grep -q ! $addon/platforms.txt; then
|
if ! grep -q all $addon/platforms.txt && ! grep -q linux $addon/platforms.txt && ! grep -q ! $addon/platforms.txt; then
|
||||||
continue
|
continue
|
||||||
@ -136,7 +153,6 @@ for addontxt in $KODI_DIR/project/cmake/addons/bootstrap/repositories/*-addons.t
|
|||||||
-i ../../packages/mediacenter/kodi-binary-addons/$ADDON/package.mk
|
-i ../../packages/mediacenter/kodi-binary-addons/$ADDON/package.mk
|
||||||
|
|
||||||
rm -rf $PKG_NAME.git
|
rm -rf $PKG_NAME.git
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "[mkpkg] Skipped $ADDON"
|
echo "[mkpkg] Skipped $ADDON"
|
||||||
SKIPPED_ADDONS="$SKIPPED_ADDONS $ADDON"
|
SKIPPED_ADDONS="$SKIPPED_ADDONS $ADDON"
|
||||||
@ -149,7 +165,7 @@ done
|
|||||||
# finally, any other unofficial addons
|
# finally, any other unofficial addons
|
||||||
for ADDON in $(ls -1 ../../packages/mediacenter/kodi-binary-addons); do
|
for ADDON in $(ls -1 ../../packages/mediacenter/kodi-binary-addons); do
|
||||||
# ignore already processed addons
|
# ignore already processed addons
|
||||||
grep -qE "^${ADDON}$" ${PROCESSED} && continue
|
echo -e "${PROCESSED}" | grep -qE "^${ADDON}$" && continue
|
||||||
|
|
||||||
# Obtain git url - ignore if not a suitable repo
|
# Obtain git url - ignore if not a suitable repo
|
||||||
REPO="$(geturl "${ADDON}")" || continue
|
REPO="$(geturl "${ADDON}")" || continue
|
||||||
|
Loading…
x
Reference in New Issue
Block a user