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