desktop/kdeupdate.sh
AlmAck 045d1a7ef8 KDE Application 18.08.1
[skip-ci] files on ftp server, build manually
2018-09-05 21:29:57 +02:00

115 lines
3.2 KiB
Bash
Executable File

#!/bin/bash
# kdeupdate.sh
#
# Copyright © 2018 Luca Giambonini <almack@chakralinux.org>
#
# This program 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.
#
# This program 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 this program; if not, see <http://www.gnu.org/licenses/>.
_script_name="kde update"
# load functions
for subroutine in $_needed_functions ; do
source ~/bin/functions/$subroutine
done
# Get package information
function _package_info() {
local package="${1}"
local properties=("${@:2}")
for property in "${properties[@]}"; do
local -n nameref_property="${property}"
nameref_property=($(
#source "${package}/PKGBUILD"
source "PKGBUILD"
declare -n nameref_property="${property}"
echo "${nameref_property[@]}"))
done
}
build()
{
while read -r pkg; do
[[ $pkg =~ ^[:blank:]*$ ]] && continue
local comment_re="^[:blank:]*#"
[[ $pkg =~ $comment_re ]] && continue
local pkgrel_re="^[:blank:]*\+"
if [[ $pkg =~ $pkgrel_re ]]; then
echo "Pkgrel ++ '${pkg//+}'"
pushd "${pkg//+}" &>/dev/null
git reset HEAD PKGBUILD
git checkout PKGBUILD
_rel=$(cat PKGBUILD | grep pkgrel= | cut -d= -f2)
sed -i -e "s/pkgrel=$_rel/pkgrel=$(($_rel+1))/" PKGBUILD
git add PKGBUILD
popd &>/dev/null
continue
fi
echo "Processing: '$pkg'"
pushd "$pkg" &>/dev/null
# update version
sed -r "s|pkgver=.*|pkgver=$Version|g" -i PKGBUILD
sed -r "s|pkgrel=.*|pkgrel=1|g" -i PKGBUILD
sed -r 's|"extra-cmake-modules>=[^"]*"|"extra-cmake-modules>='${Version}'"|g' -i PKGBUILD
# update source link
sed -r "s|https://download.kde.org/.*stable/|https://download.kde.org/${Branch}/|g" -i PKGBUILD
# update sha256 sums
local pkgver pkgname source _pkgname _pkgbase
_package_info "$pkg" pkgver pkgname source _pkgname _pkgbase
if [ ! -z "$_pkgname" ]; then
pkgname=$_pkgname
fi
if [ ! -z "$_pkgbase" ]; then
pkgname=$_pkgbase
fi
# check if the external file reference is set
if [ ! -z "$REVISIONS_AND_HASHES" ]; then
_sha256sum=$(curl "$REVISIONS_AND_HASHES" | grep "sources/$pkgname-$pkgver" | cut -c-64)
else
_url=$source
_sha256sum=$(curl "$_url.sha256" | cut -c-64)
fi
sed -r "s|sha256sums=.*|sha256sums=('$_sha256sum'|g" -i PKGBUILD
echo $_sha256sum
unset pkgver pkgname source _pkgname _pkgbase
#updpkgsums
git add PKGBUILD
popd &>/dev/null
done < "$1"
}
title "$_script_name"
if [ ! -f $1.conf ]; then
echo "$1.conf: File not found!"
exit 1
fi
# load the configurations
source $1.conf
time build "$1.order"