mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
LibreELEC uses a locally managed, newer version of p8-platform Signed-off-by: Matthias Reichl <hias@horus.com>
118 lines
3.8 KiB
Bash
Executable File
118 lines
3.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
|
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "Usage: $0 <branch-name>"
|
|
exit 0
|
|
fi
|
|
|
|
# list of packages to exclude from update
|
|
EXCLUDED_PACKAGES="vfs.sacd"
|
|
|
|
# the following environment variables can be set to "yes" to enable optional features:
|
|
# KEEP_GIT_DIRS: don't delete cloned git directories after update check
|
|
# BUMP_PKG_REV: bump PKG_REV if PKG_VERSION has changed
|
|
|
|
MY_DIR="$(dirname "$0")"
|
|
ROOT="$(cd "${MY_DIR}"/../.. && pwd)"
|
|
TMPDIR="$(pwd)/.update-binary-addons-tmp"
|
|
TMP_PKG_FILE="${TMPDIR}/package.tar.gz"
|
|
TMP_PKG_DIR="${TMPDIR}/package"
|
|
|
|
rm -rf "${TMPDIR}"
|
|
mkdir -p "${TMPDIR}"
|
|
|
|
KODI_BRANCH="$1"
|
|
KODI_DIR="kodi-${KODI_BRANCH}.git"
|
|
|
|
. "${MY_DIR}/update_common_functions"
|
|
|
|
if [ ! -d ${KODI_DIR} ] ; then
|
|
git_clone https://github.com/xbmc/xbmc ${KODI_BRANCH} ${KODI_DIR}
|
|
fi
|
|
|
|
# kodi-platform
|
|
REPO=$(cat $KODI_DIR/cmake/addons/depends/common/kodi-platform/kodi-platform.txt | awk '{print $2}')
|
|
GIT_HASH=$(cat $KODI_DIR/cmake/addons/depends/common/kodi-platform/kodi-platform.txt | awk '{print $3}')
|
|
PKG_NAME="kodi-platform"
|
|
|
|
git_clone $REPO master $PKG_NAME.git $GIT_HASH
|
|
if [ -f "${ROOT}/packages/mediacenter/kodi-platform/package.mk" ] ; then
|
|
# update package.mk
|
|
RESOLVED_HASH=$(resolve_hash $PKG_NAME.git $GIT_HASH)
|
|
update_pkg "${ROOT}/packages/mediacenter/kodi-platform" ${PKG_NAME} ${RESOLVED_HASH}
|
|
fi
|
|
if [ "${KEEP_GIT_DIRS}" != "yes" ]; then
|
|
rm -rf $PKG_NAME.git
|
|
fi
|
|
|
|
# addons
|
|
for addontxt in $KODI_DIR/cmake/addons/bootstrap/repositories/*-addons.txt ; do
|
|
ADDONS=$(cat $addontxt | awk '{print $1}')
|
|
ADDONREPO=$(cat $addontxt | awk '{print $2}')
|
|
GIT_HASH=$(cat $addontxt | awk '{print $3}')
|
|
git_clone $ADDONREPO ${KODI_BRANCH} $ADDONS.git $GIT_HASH
|
|
for addon in $ADDONS.git/*.*/ ; do
|
|
ADDON=$(basename $addon)
|
|
|
|
[[ ${ADDON} =~ ^game.* ]] && continue # ignore game.* addons - handled by update_retroplayer-addons
|
|
|
|
check_package_excluded "${ADDON}" "${EXCLUDED_PACKAGES}" && continue
|
|
|
|
REPO=$(cat $addon/$ADDON.txt | awk '{print $2}')
|
|
GIT_HASH=$(cat $addon/$ADDON.txt | awk '{print $3}')
|
|
|
|
# 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}${ADDON}\n"
|
|
|
|
if ! grep -q all $addon/platforms.txt && ! grep -q linux $addon/platforms.txt && ! grep -q ! $addon/platforms.txt; then
|
|
continue
|
|
fi
|
|
|
|
ADDON_PATH="${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON/"
|
|
if [ -f "${ADDON_PATH}/package.mk" ] ; then
|
|
update_to_latest_tag "${ADDON_PATH}" ${ADDON} ${REPO} ${KODI_BRANCH} ${GIT_HASH}
|
|
else
|
|
echo "[mkpkg] Skipped $ADDON"
|
|
SKIPPED_ADDONS="$SKIPPED_ADDONS $ADDON"
|
|
fi
|
|
done
|
|
|
|
echo
|
|
echo "The following addons were skipped, please add packages for these addons:"
|
|
echo "[${SKIPPED_ADDONS}]"
|
|
echo
|
|
done
|
|
|
|
# finally, any other unofficial addons
|
|
for ADDON in $(ls -1 "${ROOT}/packages/mediacenter/kodi-binary-addons"); do
|
|
[[ ${ADDON} =~ ^game.* ]] && continue # ignore game.* addons - handled by update_retroplayer-addons
|
|
|
|
# ignore already processed addons
|
|
echo -e "${PROCESSED}" | grep -qE "^${ADDON}$" && continue
|
|
|
|
check_package_excluded "${ADDON}" "${EXCLUDED_PACKAGES}" && continue
|
|
|
|
# Obtain git url - ignore if not a suitable repo
|
|
REPO="$(geturl "${ADDON}")" || continue
|
|
|
|
git_clone $REPO ${KODI_BRANCH} $ADDON.git HEAD
|
|
|
|
# update package.mk for stale github.com packages
|
|
RESOLVED_HASH=$(resolve_hash ${ADDON}.git HEAD) || continue
|
|
echo "Resolving hash for ${ADDON}: HEAD => ${RESOLVED_HASH}"
|
|
update_pkg "${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON" ${ADDON} ${RESOLVED_HASH}
|
|
|
|
if [ "${KEEP_GIT_DIRS}" != "yes" ]; then
|
|
rm -rf $ADDON.git
|
|
fi
|
|
done
|
|
|
|
rm -rf "${TMPDIR}"
|