Files
meta-kf5/scripts/kf5-release.sh
2021-01-01 14:22:33 +01:00

81 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
#
# add/remove KF5 release recipes
#
# SPDX-FileCopyrightText: 2017-2018 Volker Krause <vkrause@kde.org>
# SPDX-FileCopyrightText: 2020 Andreas Cord-Landwehr <cordlandwehr@kde.org>
#
# SPDX-License-Identifier: MIT
function usage()
{
echo "$1 [add|remove] <version>"
echo "$1 metainfo"
exit 1
}
function yaml() {
python3 -c "
import yaml
metainfo=yaml.safe_load(open('$1'))
if '$2' in metainfo:
print(metainfo['$2'])
else:
print()
"
}
command=$1
if [ -z "$command" ]; then usage $0; fi
version=$2
if [ -z "$version" ]; then usage $0; fi
base=`dirname $0`/../recipes-kf5
case $command in
add)
# search for all non-staging inc files without underlines
for recipe in `find $base -regex ".*/[0-9a-zA-Z\-]+\.inc" | grep -v /staging/`; do
name=`echo $recipe | sed -e "s,\.inc,_${version}.bb,"`
cat <<EOM > $name
# SPDX-FileCopyrightText: none
# SPDX-License-Identifier: CC0-1.0
require \${PN}.inc
SRCREV = "v\${PV}"
EOM
git add $name
done
;;
remove)
for recipe in `find $base -name "*_$version.bb"`; do
git rm -f $recipe
done
;;
metainfo)
echo "Updating metainfo..."
for recipe in `find $base -regex ".*/[0-9a-zA-Z\-]+\.inc" | grep -v /staging/`; do
framework=`echo $recipe | grep -P -o '[0-9a-zA-Z\-]+(?=\.inc)'`
filename=`echo $recipe | sed -e "s,\.inc,_metainfo\.inc,"`
url="https://invent.kde.org/frameworks/$framework/-/raw/v$version/metainfo.yaml"
curl $url > /tmp/$framework
description=$(yaml /tmp/$framework "description")
if [[ $description == "" ]] ; then
echo "WARNING: no description for $framework"
fi
cat <<EOM > $filename
# SPDX-FileCopyrightText: none
# SPDX-License-Identifier: CC0-1.0
SUMMARY ?= "$description"
HOMEPAGE ?= "https://api.kde.org/frameworks/$framework/html/index.html"
EOM
git add $filename
done
;;
*)
usage $0
;;
esac