Magellan Linux

Annotation of /mcore-src/trunk/mcore-tools/src/modules/idesk/idesk-generate-icon.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2361 - (hide annotations) (download)
Tue Aug 25 10:04:18 2015 UTC (8 years, 8 months ago) by niro
File size: 3379 byte(s)
-fixed a typo
1 niro 2358 #!/bin/bash
2    
3     MCORE_LIBDIR="@@MCORE_LIBDIR@@"
4     source @@SYSCONFDIR@@/mcore/mcore.conf
5     source ${MCORE_LIBDIR}/include/common.global.class
6    
7     GLOBAL_PIXMAPS_PATH="@@GLOBAL_PIXMAPS_PATH@@"
8     LOCAL_PIXMAPS_PATH="${MCORE_CONFIG_PATH}/icons/default"
9    
10     ICON_INFO_PATH="${MCORE_CONFIG_PATH}/icons/info"
11     ICON_INFO_SUFFIX="@@ICON_INFO_SUFFIX@@"
12     ICON_SUFFIX="@@ICON_SUFFIX@@"
13    
14 niro 2360 die() { echo "ERROR: $@"; exit 1; }
15    
16 niro 2358 # very basic getops
17     for i in $*
18     do
19     case $1 in
20 niro 2361 --resource|-r) shift; icon_resource="$1" ;;
21 niro 2358 --name|-n) shift; argv_name="$1" ;;
22     --command|-c) shift; argv_command="$1" ;;
23     --icon|-i) shift; argv_icon="$1" ;;
24     --filename|-f) shift; argv_filename="$1" ;;
25     --xres|-x) shift; argv_xres="$1" ;;
26     --yres|-y) shift; argv_yres="$1" ;;
27     --icon-width|-w) shift; argv_iwidth="$1" ;;
28     --icon-height|-h) shift; argv_iheight="$1" ;;
29     --default-icon) shift; argv_deficon="$1" ;;
30     esac
31     shift
32     done
33    
34     # some sanity checks:
35    
36     if [[ -n ${icon_resource} ]]
37     then
38     [[ -f ${icon_resource} ]] || die "Icon resource '${icon_resource}' does not exist"
39     else
40     name="${argv_name}"
41     command="${argv_command}"
42     filename="${argv_filename}"
43     xres="${argv_xres}"
44     yres="${argv_yres}"
45     icon="${argv_icon}"
46     deficon="${argv_deficon}"
47     iwidth="${argv_iwidth}"
48     iheight="${argv_iheight}"
49    
50     # abort if name or command not given
51     [[ -z ${name} ]] && die "No name given"
52     [[ -z ${command} ]] && die "No command given"
53    
54     [[ -z ${filename} ]] && filename="${name}"
55    
56     # use some defaults for icon, dest, {x,y}res
57     [[ -z ${xres} ]] && xres=50
58     [[ -z ${yres} ]] && xres=50
59     if [[ -z ${icon} ]]
60     then
61     # if no default icon is given use default.png
62     [[ -z ${deficon} ]] && deficon="default.png"
63     icon="${deficon}"
64     fi
65    
66     ${MCORE_LIBDIR}/idesk-generate-icon-info \
67     --name "${name}" \
68     --command "${command}" \
69     --icon "${icon}" \
70     --filename "${filename}" \
71     --xres "${xres}" \
72     --yres "${yres}" \
73     --icon-width "${iwidth}" \
74     --icon-height "${iheight}" \
75     --default-icon "${deficon}"
76    
77     icon_resource="${ICON_INFO_PATH}/${filename}.${ICON_INFO_SUFFIX}"
78     fi
79    
80     source "${icon_resource}"
81    
82     # icon resource overrides
83     [[ -n ${argv_name} ]] && name="${argv_name}"
84     [[ -n ${argv_command} ]] && command="${argv_command}"
85     [[ -n ${argv_filename} ]] && filename="${argv_filename}"
86     [[ -n ${argv_xres} ]] && xres="${argv_xres}"
87     [[ -n ${argv_yres} ]] && yres="${argv_yres}"
88     [[ -n ${argv_icon} ]] && icon="${argv_icon}"
89     [[ -n ${argv_deficon} ]] && deficon="${argv_deficon}"
90     [[ -n ${argv_iwidth} ]] && iwidth="${argv_iwidth}"
91     [[ -n ${argv_iheight} ]] && iheight="${argv_iheight}"
92    
93     [[ -z ${filename} ]] && die "Error \$filename is empty in icon resource '${icon_resource}'"
94    
95     # get the right icon path, local overrides global
96     [[ -f ${GLOBAL_PIXMAPS_PATH}/${icon} ]] && icon_path="${GLOBAL_PIXMAPS_PATH}"
97     [[ -f ${LOCAL_PIXMAPS_PATH}/${icon} ]] && icon_path="${LOCAL_PIXMAPS_PATH}"
98     # no icon found, use default icon
99     if [[ -z ${icon_path} ]]
100     then
101     icon_path="${GLOBAL_PIXMAPS_PATH}"
102     icon="default.png"
103     fi
104    
105     CONFIG="${MCORE_UNPRIV_HOME}/.idesktop/${filename}.${ICON_SUFFIX}"
106     clearconfig
107    
108     addconfig 'table Icon'
109     addconfig " Caption: ${name}"
110     addconfig " Command: ${command}"
111     addconfig " Icon: ${icon_path}/${icon}"
112     addconfig " X: ${xres}"
113     addconfig " Y: ${yres}"
114    
115     # add these only if not zero
116     if [[ ! -z ${iwidth} ]] && [[ ! -z ${iheight} ]]
117     then
118     addconfig " Width: ${iwidth}"
119     addconfig " Height: ${iheight}"
120     fi
121    
122     addconfig 'end'