#!/bin/bash
# Make sure that all systems have the same sort order and date format
export LC_ALL=C
# change directory to script location
cd "$(dirname $0)"
SCRIPT=$(basename $0)
HEADER="# Autogenerated by ${SCRIPT}, DO NOT EDIT."
KF5_RELEASES="5.115 5.116"
KF5_RELEASE=${KF5_RELEASE:-5.115}
KF6_RELEASES="6.2"
KF6_RELEASE=${KF6_RELEASE:-}
PLASMA_RELEASES="5.27 6.0"
PLASMA_RELEASE=${PLASMA_RELEASE:-5.27}
GEAR_RELEASES="23.08 24.02 24.05"
GEAR_RELEASE=${GEAR_RELEASE:-23.08}
# regenerate keywords
pushd ../package.accept_keywords/ > /dev/null
for release in $KF5_RELEASES; do
if [[ -d ".kde-frameworks-5-${release}" ]]; then
echo -e "${HEADER}" > "kde-frameworks-${release}.keywords"
cat ".kde-frameworks-5-${release}/"* | grep -P -v '^>=kde-frameworks/(?!kf-env)' | \
sed -e '/^~.*[.-]5\.9999$/s/$/ **/' -e '/^@/d' >> "kde-frameworks-${release}.keywords"
fi
done
if [[ -n ${KF6_RELEASES} ]]; then
for release in $KF6_RELEASES; do
if [[ -d ".kde-frameworks-${release}" ]]; then
echo -e "${HEADER}" > "kde-frameworks-${release}.keywords"
cat ".kde-frameworks-${release}/"* | grep -P -v '^>=kde-frameworks/(?!kf-env)' | \
sed -e '/^~.*[.-]9999\:[0-9]*$/s/$/ **/' -e '/^@/d' >> "kde-frameworks-${release}.keywords"
fi
done
fi
for release in $PLASMA_RELEASES; do
echo -e "${HEADER}" > "kde-plasma-${release}.keywords"
if [[ -d ".kde-plasma-${release}" ]]; then
cat ".kde-plasma-${release}/"* | sed '/^~.*[.-]9999$/s/$/ **/' >> "kde-plasma-${release}.keywords"
fi
done
for release in $GEAR_RELEASES; do
echo -e "${HEADER}" > "kde-gear-${release}.keywords"
if [[ -d ".kde-gear-${release}" ]]; then
cat ".kde-gear-${release}/"* | \
sed -e '/^~.*[.-]9999$/s/$/ **/' -e '/^@/d' >> "kde-gear-${release}.keywords"
fi
done
# ... and for completely unkeyworded packages, add "**"
for release in $GEAR_RELEASES; do
if [[ -d ".kde-gear-${release}" ]]; then
rm -rf ".kde-gear-${release}.49.9999"
mkdir -p ".kde-gear-${release}.49.9999"
echo -e "${HEADER}" > "kde-gear-${release}.49.9999.keywords"
for file in ".kde-gear-${release}"/*; do
newfile=".kde-gear-${release}.49.9999"/$(basename "${file}")
sed -e "/^<[a-z0-9-]*\/.*\.50$/{s/\.50/.49.9999/;s/^~/};/^~.*[.-]9999$/s/$/ **/" \
-e "/^@/d" "${file}" > "${newfile}"
# echo "${newfile}"
done
cat ".kde-gear-${release}.49.9999"/* >> "kde-gear-${release}.49.9999.keywords"
fi
done
if [[ -d .kde-frameworks-5-live.base ]]; then
rm -rf .kde-frameworks-5-live
mkdir -p .kde-frameworks-5-live
echo -e "${HEADER}" > kde-frameworks-5-live.keywords
for file in .kde-frameworks-5-live.base/*; do
newfile=.kde-frameworks-5-live/$(basename "${file}")
sed -e '/^~.*[.-]5.239.9999$/s/$/ **/' -e '/^@/d' "${file}" > "${newfile}"
done
cat .kde-frameworks-5-live/* >> kde-frameworks-5-live.keywords
fi
if [[ -d .kde-frameworks-live.base ]]; then
rm -rf .kde-frameworks-live
mkdir -p .kde-frameworks-live
echo -e "${HEADER}" > kde-frameworks-live.keywords
for file in .kde-frameworks-live.base/*; do
newfile=.kde-frameworks-live/$(basename "${file}")
sed -e '/^~.*[.-]9999\:[0-9]*$/s/$/ **/' -e '/^@/d' "${file}" > "${newfile}"
done
cat .kde-frameworks-live/* >> kde-frameworks-live.keywords
fi
if [[ -d .kde-plasma-live.base ]]; then
rm -rf .kde-plasma-live
mkdir -p .kde-plasma-live
echo -e "${HEADER}" > kde-plasma-live.keywords
for file in .kde-plasma-live.base/*; do
newfile=.kde-plasma-live/$(basename "${file}")
sed '/^~.*[.-]9999$/s/$/ **/' "${file}" > "${newfile}"
done
cat .kde-plasma-live/* >> kde-plasma-live.keywords
fi
if [[ -d .kde-gear-live.base ]]; then
rm -rf .kde-gear-live
mkdir -p .kde-gear-live
echo -e "${HEADER}" > kde-gear-live.keywords
for file in .kde-gear-live.base/*; do
newfile=.kde-gear-live/$(basename "${file}")
sed -e '/^~.*[.-]9999$/s/$/ **/' -e '/^@/d' "${file}" > "${newfile}"
done
cat .kde-gear-live/* >> kde-gear-live.keywords
fi
popd > /dev/null
# regenerate unmask entries (base for package mask)
pushd ../package.unmask/ > /dev/null
for release in $KF5_RELEASES 5-live; do
if [[ -d ".kde-frameworks-5-${release}" ]]; then
echo -e "${HEADER}" > "kde-frameworks-${release}"
cat ".kde-frameworks-5-${release}/"* | \
grep -P -v '^>=kde-frameworks/(?!kf-env)' >> "kde-frameworks-${release}"
sed -i "kde-frameworks-${release}" -e "/^@/d"
fi
done
for release in $KF6_RELEASES live; do
if [[ -d ".kde-frameworks-${release}" ]]; then
echo -e "${HEADER}" > "kde-frameworks-${release}"
cat ".kde-frameworks-${release}/"* | \
grep -P -v '^>=kde-frameworks/(?!kf-env)' >> "kde-frameworks-${release}"
sed -i "kde-frameworks-${release}" -e "/^@/d"
fi
done
for release in $PLASMA_RELEASES live; do
echo -e "${HEADER}" > "kde-plasma-${release}"
if [[ -d ".kde-plasma-${release}" ]]; then
cat ".kde-plasma-${release}/"* >> "kde-plasma-${release}"
fi
done
for release in $GEAR_RELEASES live; do
echo -e "${HEADER}" > "kde-gear-${release}"
if [[ -d ".kde-gear-${release}" ]]; then
cat ".kde-gear-${release}/"* >> "kde-gear-${release}"
sed -i "kde-gear-${release}" -e "/^@/d"
fi
done
popd > /dev/null
# regenerate mask entries (base for package mask)
pushd ../package.mask/ > /dev/null
for release in $KF5_RELEASES 5-live; do
if [[ -d "../package.unmask/.kde-frameworks-5-${release}" ]]; then
echo -e "${HEADER}" > "kde-frameworks-${release}"
cat "../package.unmask/.kde-frameworks-5-${release}/"* | \
grep -P -v '^>=kde-frameworks/(?!kf-env)' >> "kde-frameworks-${release}"
sed -i "kde-frameworks-${release}" \
-e "/^=/}" -e '/^@/d'
fi
done
for release in $KF6_RELEASES live; do
if [[ -d "../package.unmask/.kde-frameworks-${release}" ]]; then
echo -e "${HEADER}" > "kde-frameworks-${release}"
cat "../package.unmask/.kde-frameworks-${release}/"* | \
grep -P -v '^>=kde-frameworks/(?!kf-env)' >> "kde-frameworks-${release}"
sed -i "kde-frameworks-${release}" \
-e "/^=/}" -e '/^@/d'
fi
done
for release in $PLASMA_RELEASES live; do
echo -e "${HEADER}" > "kde-plasma-${release}"
if [[ -d "../package.unmask/.kde-plasma-${release}" ]]; then
cat "../package.unmask/.kde-plasma-${release}/"* >> "kde-plasma-${release}"
sed -i "kde-plasma-${release}" \
-e "/^=/}"
fi
done
for release in $GEAR_RELEASES live; do
echo -e "${HEADER}" > "kde-gear-${release}"
if [[ -d "../package.unmask/.kde-gear-${release}" ]]; then
cat "../package.unmask/.kde-gear-${release}/"* >> "kde-gear-${release}"
sed -i "kde-gear-${release}" \
-e "/^=/}" -e '/^@/d'
fi
done
popd > /dev/null
# regenerate unversioned sets
pushd ../../sets/ > /dev/null
for set in *frameworks-5*${KF5_RELEASE}; do
newfile=${set/%-${KF5_RELEASE}}
echo -e "${HEADER}" > "${newfile}"
sed -r "/@/s/-${KF5_RELEASE}//g;/5\.9999$/s/~//;s//;\@kde-[a-z]+/@s/-(5\.9999|5\.[0-9]+\.50)/:5/" "${set}" >> "${newfile}"
done
if [[ -n ${KF6_RELEASE} ]]; then
for set in *frameworks-*${KF6_RELEASE}; do
newfile=${set/%-${KF6_RELEASE}}
echo -e "${HEADER}" > "${newfile}"
sed -r "/@/s/-${KF6_RELEASE}//g;/9999$/s/~//;s//;\@kde-frameworks/@s/-(9999|5\.[0-9]+\.50)//" "${set}" >> "${newfile}"
done
fi
for set in *plasma-${PLASMA_RELEASE}; do
newfile=${set/%-${PLASMA_RELEASE}}
echo -e "${HEADER}" > "${newfile}"
sed -r "/@/s/-${PLASMA_RELEASE}//g;/9999$/s/~//;s//;\@kde-plasma/@s/-(9999|${PLASMA_RELEASE}\.50)//" "${set}" >> "${newfile}"
done
for set in *-${GEAR_RELEASE}; do
newfile=${set/%-${GEAR_RELEASE}}
echo -e "${HEADER}" > "${newfile}"
sed -r "/@/s/-${GEAR_RELEASE}//g;/9999$/s/~//;s//;\@[a-z-]+/@s/-(9999|${GEAR_RELEASE}\.50)//" "${set}" >> "${newfile}"
done
popd > /dev/null
# regenerate CONTRIBUTORS file
pushd ../ > /dev/null
newfile="CONTRIBUTORS"
echo -e "${HEADER}" > "${newfile}"
git log --all --format='%aN <%aE>' | sort -u >> "${newfile}"
popd > /dev/null