---
 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

Reply via email to