aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gpe-icons/gpe-icons.inc
blob: d5644acfe2bd08887a072140725e542ab9f0ca5c (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
40
41
42
43
44
45
46
47
48
49
SECTION = "gpe"
RDEPENDS_${PN} += "gdk-pixbuf-loader-png"

#only icons present in the package
PACKAGE_ARCH = "all"

INC_PR = "r5"

ALTERNATIVE_NAME = "gpe-pixmaps"
ALTERNATIVE_LINK = "${datadir}/gpe/pixmaps"
ALTERNATIVE_PATH = "${datadir}/gpe/pixmaps.${PN}"
ALTERNATIVE_PRIORITY ?= 1

# copy icons from other alternatives if they are not provided by current alternative
# ie gpe-sketchbook install own icon to pixmaps dir even before gpe-icons_*.bb is installed
# so if we switch pixmaps link to neo theme, there would be no icon for gpe-sketchbook 
# unless we copy it to neo theme in postinst too
# inherit update-alternatives is not used, because not all distributions want to use it 
# and conditional inherit is a bit difficult to use (inherit ${GPE_INHERIT} works, but only if we always want at least 1 bbclass)

pkg_postinst_shr() {
        if [[ -e ${ALTERNATIVE_LINK} && ! -h ${ALTERNATIVE_LINK} ]] ; then
                echo "warn: ${ALTERNATIVE_LINK} exists and it's not a link!"
                echo "warn: It will be replaced with link managed by update-alternatives"
                echo "warn: Moving ${ALTERNATIVE_LINK} to ${ALTERNATIVE_LINK}.old."
                echo "warn: It should be empty but probably isn't!"
                echo "warn: Check what's left there and remove it manually."
                mv -f ${ALTERNATIVE_LINK} ${ALTERNATIVE_LINK}.old
        fi
        pixmap_dirs_root="${datadir}/gpe/"
        cd ${pixmap_dirs_root}
        for pixmap_dir in pixmaps.*; do
                if [ "${pixmap_dir}"x == "pixmaps.${PN}"x ] ; then
                          continue;
                fi
                for pixmap in `find ${pixmap_dir}`; do 
                          pixmap_target=`echo ${pixmap} | sed "s/${pixmap_dir}/pixmaps.${PN}/g"`; 
                          if [ ! -e ${pixmap_target} ] ; then 
                                      cp -ra ${pixmap} ${pixmap_target}; 
                                      echo "${pixmap} merged"; 
                          fi; 
                done
        done
        update-alternatives --install ${ALTERNATIVE_LINK} ${ALTERNATIVE_NAME} ${ALTERNATIVE_PATH} ${ALTERNATIVE_PRIORITY}
}

pkg_postrm_shr() {
        update-alternatives --remove ${ALTERNATIVE_NAME} ${ALTERNATIVE_PATH}
}