blob: 42730713c8b5e2fcef56befd8ca7ebc6b3ef04ec (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#!/usr/bin/env bash
TMP="/tmp/"
CATEGORY="kde-apps"
# we also assume that we are run from the directory where we want to remove patches eg. directory where are categories.
find -mindepth 2 -maxdepth 3 -type d -name files -print | sort -u |sed -e "s:/files::g" -e "s:\./::g" |grep ${CATEGORY} > ${TMP}/packages-with-patches.txt
EBUILD_BASEDIRS="`cat ${TMP}/packages-with-patches.txt`"
for EBBD in ${EBUILD_BASEDIRS}; do
pushd $EBBD >> /dev/null
# now we are in ebuild directory (eg. kde-apps/dolphin)
find ./files/ -type f |sort -u |sed -e "s:\./files/::g" > ${TMP}/patches-per-package.txt # d. generated on the fly per package.
PATCHES="`cat ${TMP}/patches-per-package.txt`"
for PATCH in ${PATCHES}; do
PATCH_IN_USE="false"
# look for ebulids and replace the ${P} ${PV} and ${PN} with its specified values.
find ./ -type f -name \*.ebuild |sort -u |sed -e "s:\./::g" > ${TMP}/ebuild-list-per-package.txt # d. generated on the fly per package.
EBUILDS="`cat ${TMP}/ebuild-list-per-package.txt`"
for EBUILD in ${EBUILDS}; do
P1="`echo ${EBUILD}| sed -e "s:.ebuild::g"`"
if [[ ${P1/*-/} == r* ]]; then
P1=`echo ${P1} | sed -e "s:${P1/*-/}::g" -e "s:-$::g"`
fi
PV=${P1/*-/}
PN=`echo ${P1} | sed -e "s:${P1/*-/}::g" -e "s:-$::g"`
cat ${EBUILD} | sed -e "s:\${PN}:${PN}:g" -e "s:\${PV}:${PV}:g" -e "s:\${P}:${PN}-${PV}:g" |grep "${PATCH}" |wc -l > ${TMP}/tst
COUNT=`cat ${TMP}/tst`
#echo "cat ${EBUILD} | sed -e \"s:\${PN}:${PN}:g\" -e \"s:\${PV}:${PV}:g\" -e \"s:\${P}:${PN}-${PV}:g\" |grep \"${PATCH}\"" # debug
if [[ ${COUNT} -gt 0 ]]; then
#echo "IN USE: ${PATCH}" # debug
PATCH_IN_USE="true"
break # escape no need to work further
fi
done
if [[ ${PATCH_IN_USE} == "false" ]]; then
# for now just write out.
echo "NOT IN USE!: \"${EBBD}/files/${PATCH}\"" >> ${TMP}/${CATEGORY}-unused-patches.txt
fi
done
popd >> /dev/null
done
|