/[gentoo-x86]/eclass/gdesklets.eclass
Gentoo

Contents of /eclass/gdesklets.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.12 - (show annotations) (download)
Fri Feb 17 22:18:20 2006 UTC (8 years, 5 months ago) by swegener
Branch: MAIN
Changes since 1.11: +3 -3 lines
Apply whitespace checks from repoman to eclasses.

1 # Copyright 2004 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License, v2 or later
3 # $Header: /var/cvsroot/gentoo-x86/eclass/gdesklets.eclass,v 1.11 2006/01/16 18:14:47 nixphoeni Exp $
4 #
5 # Authors: Joe Sapp <nixphoeni@gentoo.org>
6 # Mike Gardiner <obz@gentoo.org>
7 #
8 # Usage:
9 # As a writer for an ebuild for gDesklets, you should set a few things:
10 #
11 # DESKLET_NAME: The name of the desklet.
12 # DOCS: Anything (like a README) that should be dodoc'd.
13 # S: *Optional* The package's base directory.
14 # Usually ${WORKDIR}/${DESKLET_NAME} if it was packaged
15 # correctly (hence, this is the default).
16 # RDEPEND: *Optional* Set if the desklet requires a minimum version
17 # of gDesklets greater than 0.34 or other packages.
18
19 inherit eutils multilib
20
21
22 MY_P="${DESKLET_NAME}-${PV}"
23 S=${WORKDIR}/${DESKLET_NAME}
24
25 SRC_URI="http://gdesklets.gnomedesktop.org/files/${MY_P}.tar.gz"
26
27 # Ebuild writer shouldn't need to touch these (except maybe $RDEPEND)
28 SLOT="0"
29 IUSE=""
30 RDEPEND=">=gnome-extra/gdesklets-core-0.34.3-r1"
31
32 GDESKLETS_INST_DIR="/usr/$(get_libdir)/gdesklets"
33
34 gdesklets_src_install() {
35
36 debug-print-function $FUNCNAME $*
37
38 has_version ">=gnome-extra/gdesklets-core-0.33.1" || \
39 GDESKLETS_INST_DIR="/usr/share/gdesklets"
40
41 # This should be done by the gdesklets-core ebuild
42 # It makes the Displays or Controls directory in the
43 # global installation directory if it doesn't exist
44 [[ -d ${GDESKLETS_INST_DIR}/Displays ]] || \
45 dodir ${GDESKLETS_INST_DIR}/Displays
46
47 # The displays only need to be readable
48 insopts -m0744
49
50 # Check to see if DISPLAY is set for the
51 # gdesklets-control-getid script to run without
52 # error
53 [ -z "${DISPLAY}" ] && DISPLAY=""
54 export DISPLAY
55
56 debug-print-section sensor_install
57 # First, install the Sensor (if there is one)
58 if [[ -n "${SENSOR_NAME}" ]]; then
59 for SENS in ${SENSOR_NAME[@]}; do
60 einfo "Installing Sensor ${SENS}"
61 /usr/bin/python "Install_${SENS}_Sensor.bin" \
62 --nomsg ${D}${GDESKLETS_INST_DIR}/Sensors || \
63 die "Couldn't Install Sensor"
64
65 chown -R root:0 ${D}${GDESKLETS_INST_DIR}/Sensors/${SENSOR_NAME}
66 done # for in ${SENSOR_NAME}
67 fi # if -n "${SENSOR_NAME}"
68
69 debug-print-section display_install
70 # This finds the Displays
71 DISPLAY_FILES=(`find . -iname "*.display"`)
72
73 DESKLET_INSDIR=""
74
75 # There is most likely only one display per package
76 if [[ -n "${DISPLAY_FILES[@]}" ]]; then
77 # Base installation directory for displays from this desklet
78 DESKLET_INSDIR="${GDESKLETS_INST_DIR}/Displays/${DESKLET_NAME}"
79
80 # This creates the subdirectory of ${DESKLET_NAME}
81 # in the global Displays directory
82 [[ -d ${DESKLET_INSDIR} ]] || \
83 dodir ${DESKLET_INSDIR}
84
85 # For each of the Display files, there may be
86 # scripts included inline which don't necessarily
87 # follow any naming scheme.
88 # So for each of them, determine what those scripts are
89 # and install them.
90 for DSP in ${DISPLAY_FILES[@]}; do
91
92 cd `dirname ${DSP}`
93 einfo "Installing Display `basename ${DSP} .display`"
94 debug-print "Installing ${DSP} into ${DESKLET_INSDIR}"
95 DSP=`basename ${DSP}`
96 insinto ${DESKLET_INSDIR}
97 doins ${DSP}
98
99 SCRIPTS=$(grep "script .*uri" ${DSP} | \
100 sed -e 's:.*<script .*uri=": :g' -e 's:"/>.*: :g')
101
102 # For each one of the scripts, change to its
103 # base directory and change the install location
104 # so it gets installed at the proper place
105 # relative to the display.
106 for SCR in ${SCRIPTS[@]}; do
107
108 cd `dirname ${SCR}`
109
110 insinto ${DESKLET_INSDIR}/`dirname ${SCR}`
111 doins `basename ${SCR}`
112 debug-print "Installed `basename ${SCR}` into ${DESKLET_INSDIR}/`dirname ${SCR}`"
113
114 cd ${S}/`dirname ${DSP}`
115
116 done # for in ${SCRIPTS}
117
118 # Install the graphics for this display.
119 # If there are multiple displays in this
120 # directory, this will be done more than
121 # once. It's the only solution I can
122 # come up with for now...
123 GFX=(`find . \
124 -iname "*.png" -o -iname "*.svg" \
125 -o -iname "*.jpg" -o -iname "*.gif" \
126 -o -iname "*.xcf"`)
127
128 for G in ${GFX[@]}; do
129
130 insinto ${DESKLET_INSDIR}/`dirname ${G}`
131 doins ${G}
132 debug-print "Installed ${G} into ${DESKLET_INSDIR}/`dirname ${G}`"
133
134 done # for in ${GFX}
135
136 cd ${S}
137
138 done # for in ${DISPLAY_FILES}
139
140 fi
141
142 debug-print-section control_install
143
144 CONTROL_INSDIR=""
145
146 # Make sure that it only finds Controls and not Sensors
147 # If it uses a Sensor, it shouldn't use a Control (since
148 # Sensors are deprecated).
149 if [[ -z "${SENSOR_NAME}" ]]; then
150
151 # Base installation directory for Controls
152 CONTROL_INSDIR="${GDESKLETS_INST_DIR}/Controls"
153
154 CONTROL_INITS=$(find . -iname "__init__.py" | grep [Cc]ontrols)
155
156 # There are possibly multiple Controls packaged with the display.
157 # For each __init__.py found, there must be a Control associated with it.
158 for CTRL in ${CONTROL_INITS[@]}; do
159
160 cd `dirname ${CTRL}`
161 CTRL_NAME=$( PYTHON_DONTCOMPILE=1 ${GDESKLETS_INST_DIR}/gdesklets-control-getid `pwd` )
162 einfo "Installing Control ${CTRL_NAME}"
163 # This creates the subdirectory of ${CTRL_NAME}
164 # in the global Controls directory
165 [[ -d ${CONTROL_INSDIR}/${CTRL_NAME} ]] || \
166 dodir ${CONTROL_INSDIR}/${CTRL_NAME}
167
168 insinto ${CONTROL_INSDIR}/${CTRL_NAME}
169
170 doins -r *
171
172 cd ${S}
173
174 done # for in ${CONTROL_INITS}
175
176 fi # if no Sensors
177
178 # Install any remaining graphics and other files
179 # that are sitting in ${S}.
180
181 GFX=$(find . -maxdepth 1 \
182 -iname "*.png" -o -iname "*.svg" \
183 -o -iname "*.jpg" -o -iname "*.gif" \
184 -o -iname "*.xcf")
185
186 if [[ -n "${GFX}" ]]; then
187
188 # Install to the Displays directory of the Desklet
189 insinto ${GDESKLETS_INST_DIR}/Displays/${DESKLET_NAME}
190 doins ${GFX}
191 debug-print "Installed ${GFX} into ${GDESKLETS_INST_DIR}/Displays/${DESKLET_NAME}"
192
193 fi # if -n "${GFX}"
194
195 # Install some docs if so requested
196 [[ -n "${DOCS}" ]] && dodoc ${DOCS}
197 debug-print "Installed ${DOCS}"
198
199 }
200
201
202 EXPORT_FUNCTIONS src_install

  ViewVC Help
Powered by ViewVC 1.1.20