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

Contents of /eclass/gdesklets.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations) (download)
Mon Jun 6 02:00:12 2005 UTC (8 years, 10 months ago) by nixphoeni
Branch: MAIN
Changes since 1.3: +4 -2 lines
Added .xcf to the graphics files to be searched for

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

  ViewVC Help
Powered by ViewVC 1.1.20