[PATCH 2/7] add script to find possible used icons in kirigami

Martin Gysel me at bearsh.org
Tue Aug 16 18:23:47 UTC 2016


---
 scripts/gen_icons_qrc.sh | 59 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)
 create mode 100755 scripts/gen_icons_qrc.sh

diff --git a/scripts/gen_icons_qrc.sh b/scripts/gen_icons_qrc.sh
new file mode 100755
index 0000000..dff68df
--- /dev/null
+++ b/scripts/gen_icons_qrc.sh
@@ -0,0 +1,59 @@
+#!/usr/bin/env bash
+
+SRC_DIR="src/"
+BREEZEICONS_DIR="breeze-icons"
+ICONS_SIZES=(48 32 24 22)
+TAB="    "
+
+kirigami_dir="$(dirname $(readlink -f $0))/.."
+
+case $1 in
+-h|--help)
+	echo "usage: $(basename $0)"
+	exit 1
+	;;
+esac
+
+if [[ ! -d ${kirigami_dir}/${BREEZEICONS_DIR} ]]; then
+	echo "could not find ${BREEZEICONS_DIR}, please clone breeze-icons frist into ${BREEZEICONS_DIR}:"
+	echo "cd ${kirigami_dir} && git clone --depth 1 git://anongit.kde.org/breeze-icons.git ${BREEZEICONS_DIR}"
+	exit 1
+fi
+
+pushd ${kirigami_dir} > /dev/null
+
+# find strings associated to variable with 'icon' in name and put them into an array
+if [[ -n $(which ag 2>/dev/null) ]]; then
+	possible_icons=($(ag --ignore Icon.qml --file-search-regex "\.qml" --only-matching --nonumbers --noheading --nofilename "icon.*\".+\"" ${SRC_DIR} | egrep -o "*\".+\""))
+	# try to find in Icon { ... source: "xyz" ... }
+	possible_icons+=($(ag --ignore Icon.qml --file-search-regex "\.qml" -A 15 "Icon\s*{" ${SRC_DIR} | egrep "source:" | egrep -o "*\".+\""))
+else
+	possible_icons=($(find ${SRC_DIR} -name "*.qml" -and -not -name "Icon.qml" -exec egrep "icon.*\".+\"" {} \; | egrep -o "*\".+\""))
+fi
+
+# sort array and filter out all entry which are not a string ("...")
+IFS=$'\n' icons=($(sort -u <<<"${possible_icons[*]}" | egrep -o "*\".+\"" | sed 's/\"//g'))
+unset IFS
+
+#printf "%s\n" "${icons[@]}"
+
+# generate .qrc
+echo "<RCC>"
+echo "${TAB}<qresource prefix=\"/\">"
+
+for icon in ${icons[@]}; do
+	for size in ${ICONS_SIZES[@]}; do
+		file=$(find breeze-icons/icons/*/${size}/ -name "${icon}.*" -print -quit)
+
+		if [[ -n ${file} ]]; then
+			echo -e "${TAB}${TAB}<file alias=\"icons/$(basename ${file})\">${file}</file>"
+			#echo ${file}
+			break
+		fi
+	done
+done
+
+echo "${TAB}</qresource>"
+echo "</RCC>"
+
+popd > /dev/null
-- 
2.9.3



More information about the Plasma-devel mailing list