Files
Arch-R/tools/mkpkg/update_retroplayer-addons

153 lines
4.8 KiB
Bash
Executable File

#!/bin/sh
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
git_clone() {
# git_clone https://repo.url branch ./target_dir [githash]
echo "[mkpkg] Checking out $1 ..."
if [ ! -d "$3" ]; then
git clone --single-branch --depth=1 --recursive "$1" -b $2 "$3"
else
if [ -d "$3" ] ; then
cd "$3"
git checkout $2 >/dev/null 2>/dev/null
git pull
cd ..
fi
fi
if [ ! -z "$4" ] ; then
cd "$3"
git fetch >/dev/null 2>/dev/null
git branch -D $4 >/dev/null 2>/dev/null
git checkout $4 >/dev/null 2>/dev/null
git checkout -b ref-$4 >/dev/null 2>/dev/null
cd ..
fi
}
resolve_hash() {
if [ -d "$1" ] ; then
cd "$1"
git rev-parse --short $2 2>/dev/null
fi
}
get_pkg_var() {
local pkg_name="$1" pkg_var="$2"
cd ../..
PROJECT=Generic ARCH=x86_64 source config/options ${pkg_name}
echo "${!pkg_var}"
}
update_pkg() {
local pkg_path="$1" pkg_name="$2" pkg_version="$3"
local old_version pkg_url new_sha256
old_version=$(get_pkg_var "${pkg_name}" PKG_VERSION)
if [ "${old_version}" != "${pkg_version}" ]; then
[ -n "$pkg_version}" ] && sed -e "s|PKG_VERSION=.*|PKG_VERSION=\"${pkg_version}\"|g" -i ${pkg_path}
pkg_url=$(get_pkg_var "${pkg_name}" PKG_URL)
new_sha256="$(wget -q ${pkg_url} -O- | sha256sum | awk '{print $1}')" || exit 1
sed -e "s|PKG_SHA256=.*|PKG_SHA256=\"${new_sha256}\"|g" -i ${pkg_path}
fi
}
# addons
for addontxt in "binary-addons https://github.com/lrusak/repo-binary-addons.git retroplayer" ; do
ADDONS=$(echo $addontxt | awk '{print $1}')
ADDONREPO=$(echo $addontxt | awk '{print $2}')
GIT_HASH=$(echo $addontxt | awk '{print $3}')
git_clone $ADDONREPO retroplayer $ADDONS.git $GIT_HASH
if [ -z "$1" ]; then
for addon in $ADDONS.git/*.*/ ; do
if [ -n "$(echo $addon | grep game.)" -o -n "$(echo $addon | grep peripheral.)" ]; then
ADDON=$(basename $addon)
REPO=$(cat $addon/$ADDON.txt | awk '{print $2}')
GIT_HASH=$(cat $addon/$ADDON.txt | awk '{print $3}')
EMULATOR="libretro-${ADDON##*.}"
BUMP_REV=""
OLD_HASH=""
RESOLVED_HASH=""
if ! grep -q all $addon/platforms.txt && ! grep -q linux $addon/platforms.txt && ! grep -q ! $addon/platforms.txt; then
continue
fi
#########################
# binary add-on section #
#########################
if [ -f ../../packages/mediacenter/kodi-binary-addons/$ADDON/package.mk ]; then
. ../../packages/mediacenter/kodi-binary-addons/$ADDON/package.mk
OLD_HASH=$PKG_VERSION
git_clone $REPO master $ADDON.git $GIT_HASH
RESOLVED_HASH=$(resolve_hash $ADDON.git $GIT_HASH)
if [ "$OLD_HASH" != "$RESOLVED_HASH" ]; then
update_pkg ../../packages/mediacenter/kodi-binary-addons/$ADDON/package.mk ${ADDON} ${RESOLVED_HASH}
BUMP_REV=true
echo "OLD_HASH: $OLD_HASH"
echo "NEW_HASH: $RESOLVED_HASH"
echo ""
fi
fi
#########################
# emulation section #
#########################
if [ -f ../../packages/emulation/$EMULATOR/package.mk ]; then
. ../../packages/emulation/$EMULATOR/package.mk
OLD_HASH=$PKG_VERSION
git_clone $PKG_SITE master $EMULATOR.git
RESOLVED_HASH=$(resolve_hash $EMULATOR.git master)
if [ "$OLD_HASH" != "$RESOLVED_HASH" ]; then
update_pkg ../../packages/emulation/$EMULATOR/package.mk ${EMULATOR} ${RESOLVED_HASH}
BUMP_REV=true
echo "OLD_HASH: $OLD_HASH"
echo "NEW_HASH: $RESOLVED_HASH"
echo ""
fi
fi
if [ "$BUMP_REV" = "true" ]; then
. ../../packages/mediacenter/kodi-binary-addons/$ADDON/package.mk
sed -e "s|PKG_REV=.*|PKG_REV=\"$((PKG_REV+1))\"|" -i ../../packages/mediacenter/kodi-binary-addons/$ADDON/package.mk
echo "BUMPING PKG_REV FROM: $PKG_REV TO: $((PKG_REV+1))"
echo ""
fi
fi
done
fi
done