Magellan Linux

Annotation of /branches/R11-unstable/include/mtools.sminc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2032 - (hide annotations) (download)
Fri Jun 12 11:01:39 2009 UTC (14 years, 11 months ago) by niro
Original Path: trunk/core/include/mtools.sminc
File size: 11384 byte(s)
-fixed src_install()
1 niro 2 # $Header: /magellan-cvs/smage/include/mtools.sminc,v 1.39 2008/04/20 08:28:23 niro Exp $
2     # some special build tools
3    
4     # automatical inherit mtools.minc
5     # this will provide the service management functions
6     INHERITS="${INHERITS} mtools"
7    
8     # installs initscripts
9     # minstallrc /path/to/rc-script {destfilename}
10     minstallrc()
11     {
12     local rcscript
13     local file
14    
15     [[ -z "$1" ]] && die "No initscript given"
16    
17     # if no fullpath given use file from sourcedir
18     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
19     then
20     file="${SOURCEDIR}/${PNAME}/$1"
21     else
22     file="$1"
23     fi
24    
25     if [[ -n "$2" ]]
26     then
27     rcscript="$2"
28     else
29     rcscript="$(basename ${file})"
30     fi
31    
32     # needed directory
33     install -d ${BINDIR}/etc/rc.d/init.d || die
34    
35     # install our initscript
36 niro 1113 install -v -m 0755 -o root -g root ${file} ${BINDIR}/etc/rc.d/init.d/${rcscript} || die
37 niro 2 }
38    
39     # installs environment files
40     # minstallenv /path/to/envdfile {destfilename}
41     minstallenv()
42     {
43     local envdfile
44     local file
45    
46     [[ -z "$1" ]] && die "No envd file given"
47    
48     # if no fullpath given use file from sourcedir
49     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
50     then
51     file="${SOURCEDIR}/${PNAME}/$1"
52     else
53     file="$1"
54     fi
55    
56     if [[ -n "$2" ]]
57     then
58     envdfile="$2"
59     else
60     envdfile="$(basename ${file})"
61     fi
62    
63     # needed directory
64     install -d ${BINDIR}/etc/env.d || die
65    
66     # install our envfile
67 niro 1113 install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/env.d/${envdfile} || die
68 niro 2 }
69    
70     # installs system configuration files
71     # minstallconf /path/to/confdfile {destfilename}
72     minstallconf()
73     {
74     local confdfile
75     local file
76    
77     [[ -z "$1" ]] && die "No confd file given"
78    
79     # if no fullpath given use file from sourcedir
80     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
81     then
82     file="${SOURCEDIR}/${PNAME}/$1"
83     else
84     file="$1"
85     fi
86    
87     if [[ -n "$2" ]]
88     then
89     confdfile="$2"
90     else
91     confdfile="$(basename ${file})"
92     fi
93    
94     # needed directory
95     install -d ${BINDIR}/etc/conf.d || die
96    
97     # install our configfile
98 niro 1113 install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/conf.d/${confdfile} || die
99 niro 2 }
100    
101     # installs system configuration files to etc
102     # minstalletc /path/to/etcfile {destfilename} {destdir path}
103     minstalletc()
104     {
105     local etcfile
106     local file
107     local destdir
108    
109     [[ -z "$1" ]] && die "No etc file given"
110    
111     # if no fullpath given use file from sourcedir
112     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
113     then
114     file="${SOURCEDIR}/${PNAME}/$1"
115     else
116     file="$1"
117     fi
118    
119     if [[ -n "$2" ]]
120     then
121     etcfile="$2"
122     else
123     etcfile="$(basename ${file})"
124     fi
125    
126     if [[ -n "$3" ]]
127     then
128     destdir="$3"
129     else
130     destdir="/etc"
131     fi
132    
133     # needed directory
134     install -d ${BINDIR}/${destdir} || die
135    
136     # install our configfile
137 niro 1113 install -v -m 0644 -o root -g root ${file} ${BINDIR}/${destdir}/${etcfile} || die
138 niro 2 }
139    
140 niro 2032 minstalludevrule()
141 niro 2031 {
142     local udevrule
143     local file
144    
145     [[ -z "$1" ]] && die "No udev rule given"
146    
147     # if no fullpath given use file from sourcedir
148     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
149     then
150     file="${SOURCEDIR}/${PNAME}/$1"
151     else
152     file="$1"
153     fi
154    
155     if [[ -n "$2" ]]
156     then
157     udevrule="$2"
158     else
159     udevrule="$(basename ${file})"
160     fi
161    
162     # needed directory
163     install -d ${BINDIR}/etc/udev/rules.d || die
164    
165 niro 2032 # install our udev rule
166     install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/udev/rules.d/${udevrule} || die
167 niro 2031 }
168    
169 niro 2032 minstalludevhelper()
170     {
171     local udevhelper
172     local file
173    
174     [[ -z "$1" ]] && die "No udev helper given"
175    
176     # if no fullpath given use file from sourcedir
177     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
178     then
179     file="${SOURCEDIR}/${PNAME}/$1"
180     else
181     file="$1"
182     fi
183    
184     if [[ -n "$2" ]]
185     then
186     udevhelper="$2"
187     else
188     udevhelper="$(basename ${file})"
189     fi
190    
191     # needed directory
192     install -d ${BINDIR}/lib/udev || die
193    
194     # install our udev-helper
195     install -v -m 0755 -o root -g root ${file} ${BINDIR}/lib/udev/${udevhelper} || die
196     }
197    
198 niro 2 # install man files to appropiate dirs
199     # minstallman /path/to/manfile.foo
200     minstallman()
201     {
202     local manfile
203     local mandir
204     local file
205    
206     [[ -z "$@" ]] && die "No man file given"
207    
208     for file in $@
209     do
210     manfile="$(basename ${file})"
211     mandir="man${manfile##*.}"
212    
213     install -d ${BINDIR}/usr/share/man/${mandir} || die
214 niro 1113 install -v -m0644 ${file} ${BINDIR}/usr/share/man/${mandir}/${manfile} || die
215 niro 2 done
216     }
217    
218     # install info files to appropiate dirs
219     # minstallinfo /path/to/infofile.foo
220     minstallinfo()
221     {
222     local file
223    
224     [[ -z "$@" ]] && die "No info file given"
225    
226     for file in $@
227     do
228     install -d ${BINDIR}/usr/share/info || die
229 niro 1113 install -v -m0644 ${file} ${BINDIR}/usr/share/info/$(basename ${file}) || die
230 niro 2 done
231     }
232    
233     # install html files to appropiate dirs
234     # minstallhtml /path/to/infofile.foo
235     minstallhtml()
236     {
237     local file
238     local subfile
239     local prefix
240     local subprefix
241    
242     # handle prefix
243     case "$1" in
244     --prefix|-p) shift; prefix="$1"; shift ;;
245     esac
246    
247     [[ -z "$@" ]] && die "No html file given"
248    
249     for file in $@
250     do
251     install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/html${prefix} || die
252    
253     if [[ -d ${file} ]]
254     then
255     for subfile in ${file}/*
256     do
257     subprefix="$(dirname ${subfile/$(dirname ${file})/})"
258     subprefix="${prefix}${subprefix}/"
259    
260     minstallhtml --prefix ${subprefix} ${subfile} || die
261     done
262     else
263 niro 1113 install -v -m0644 ${file} ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/html/${prefix}$(basename ${file}) || die
264 niro 2 fi
265     done
266     }
267    
268     # install pixmaps to appropiate dirs
269     # minstallpixmap srcname destname {/path/to}
270     minstallpixmap()
271     {
272     local file
273     local destdir
274     local destfile
275    
276     [[ -z "$1" ]] && die "No pixmap given"
277    
278     # if no fullpath given use file from sourcedir
279     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
280     then
281     file="${SOURCEDIR}/${PNAME}/$1"
282     else
283     file="$1"
284     fi
285    
286     if [[ -n "$2" ]]
287     then
288     destfile="$2"
289     else
290     destfile="$(basename ${file})"
291     fi
292    
293     if [[ -n "$3" ]]
294     then
295     destdir="$3"
296     else
297     destdir="/usr/share/pixmaps"
298     fi
299    
300     # needed directory
301     install -d ${BINDIR}/${destdir} || die
302    
303     # install our pixmap
304 niro 1113 install -v -m 0644 -o root -g root ${file} ${BINDIR}/${destdir}/${destfile} || die
305 niro 2 }
306    
307     # installs pam configuration files
308     # minstallpam /path/to/pamfile {destfilename}
309     minstallpam()
310     {
311     local pamfile
312     local file
313    
314     [[ -z "$1" ]] && die "No pam file given"
315    
316     # if no fullpath given use file from sourcedir
317     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
318     then
319     file="${SOURCEDIR}/${PNAME}/$1"
320     else
321     file="$1"
322     fi
323    
324     if [[ -n "$2" ]]
325     then
326     pamfile="$2"
327     else
328     pamfile="$(basename ${file})"
329     fi
330    
331     # needed directory
332     install -d ${BINDIR}/etc/pam.d || die
333    
334     # install our configfile
335 niro 1113 install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/pam.d/${pamfile} || die
336 niro 2 }
337    
338     # installs cronjobs
339     # minstallcron [hourly|daily|weekly|monthly] /path/to/cronfile {destfilename}
340     minstallcron()
341     {
342     local cronfile
343     local loop
344     local file
345    
346     [[ -z "$1" ]] && die "No loop rythem given [hourly|daily|weekly|monthly]"
347     [[ -z "$2" ]] && die "No cronfile given"
348    
349     loop="$1"
350    
351     # if no fullpath given use file from sourcedir
352     if [[ -z $(dirname $2) ]] || [[ $(dirname $2) = . ]]
353     then
354     file="${SOURCEDIR}/${PNAME}/$2"
355     else
356     file="$2"
357     fi
358    
359     if [[ -n "$3" ]]
360     then
361     cronfile="$3"
362     else
363     cronfile="$(basename ${file})"
364     fi
365    
366     # needed directory
367     install -m0750 -d ${BINDIR}/etc/cron.${loop} || die
368    
369     # install our cronfile
370 niro 1113 install -v -m 0750 -o root -g root ${file} ${BINDIR}/etc/cron.${loop}/${cronfile} || die
371 niro 2 }
372    
373    
374     # installs logrotate configuration files
375     # minstallpam /path/to/logrotatefile {destfilename}
376     minstalllog()
377     {
378     local logfile
379     local file
380    
381     [[ -z "$1" ]] && die "No logrotate file given"
382    
383     # if no fullpath given use file from sourcedir
384     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
385     then
386     file="${SOURCEDIR}/${PNAME}/$1"
387     else
388     file="$1"
389     fi
390    
391     if [[ -n "$2" ]]
392     then
393     logfile="$2"
394     else
395     logfile="$(basename ${file})"
396     fi
397    
398     # needed directory
399     install -d ${BINDIR}/etc/logrotate.d || die
400    
401     # install our configfile
402 niro 1113 install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/logrotate.d/${logfile} || die
403 niro 2 }
404    
405    
406     # installs given directories
407     # minstalldir /path/to/dest/dir {/path/to/dest/dirN}
408     minstalldir()
409     {
410     local argv="$@"
411     local dest
412    
413     [[ -z ${argv} ]] && die "No dest dir given"
414     for dest in ${argv}
415     do
416     [[ -d ${BINDIR}${dest} ]] && continue
417 niro 1113 install -v -d ${BINDIR}/${dest} || die
418 niro 2 done
419     }
420    
421    
422     # install files to given path (defaults to /usr/bin)
423     # minstallfile {-s} /path/to/file {/path/to/dest}
424     minstallfile()
425     {
426     local file
427     local dest
428    
429     [[ -z $1 ]] && die "No etc file given"
430    
431     if [[ $1 = -s ]]
432     then
433     file="${SOURCEDIR}/${PNAME}/$2"
434     dest="$3"
435     if [[ -z $3 ]]
436     then
437     dest=/usr/bin
438     install -d ${BINDIR}/${dest} || die
439     fi
440     else
441     file="$1"
442     dest="$2"
443     if [[ -z $2 ]]
444     then
445     dest=/usr/bin
446     install -d ${BINDIR}/${dest} || die
447     fi
448     fi
449    
450     # install our configfile
451 niro 1113 install -v -m 0644 -o root -g root ${file} ${BINDIR}/${dest} || die
452 niro 2 }
453    
454     # installs executables to given path
455     # minstallexec {-s} /path/to/exec {/path/to/dest}
456     minstallexec()
457     {
458     local file
459     local dest
460    
461     [[ -z $1 ]] && die "No file given"
462    
463     if [[ $1 = -s ]]
464     then
465     file="${SOURCEDIR}/${PNAME}/$2"
466     dest="$3"
467     if [[ -z $3 ]]
468     then
469     dest=/usr/bin
470     install -d ${BINDIR}/${dest} || die
471     fi
472     else
473     file="$1"
474     dest="$2"
475     if [[ -z $2 ]]
476     then
477     dest=/usr/bin
478     install -d ${BINDIR}/${dest} || die
479     fi
480     fi
481    
482     # install our configfile
483 niro 1113 install -v -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die
484 niro 2 }
485    
486     # installs executables to given path
487     # minstalllib {-s} /path/to/exec {/path/to/dest}
488     minstalllib()
489     {
490     local file
491     local dest
492    
493     [[ -z $1 ]] && die "No file given"
494    
495     if [[ $1 = -s ]]
496     then
497     file="${SOURCEDIR}/${PNAME}/$2"
498     dest="$3"
499     if [[ -z $3 ]]
500     then
501     dest=/usr/$(mlibdir)
502     install -d ${BINDIR}/${dest} || die
503     fi
504     else
505     file="$1"
506     dest="$2"
507     if [[ -z $2 ]]
508     then
509     dest=/usr/$(mlibdir)
510     install -d ${BINDIR}/${dest} || die
511     fi
512     fi
513    
514     # install our library
515 niro 1113 install -v -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die
516 niro 2
517     # create libtool symlinks
518     # 1. - library.so.1.0.0 -> library.so.1.0
519     if [ "${file%.*}" != *.so ]
520     then
521 niro 1113 ln -v -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*})
522 niro 2 fi
523     # 2. - library.so.1.0.0 -> library.so.1
524     if [ "${file%.*.*}" != *.so ]
525     then
526 niro 1113 ln -v -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*.*})
527 niro 2 fi
528     }
529    
530     # mark directoris undeletable
531     mkeepdir()
532     {
533     local keepdir
534     [[ -z "$1" ]] && die "No directory given"
535    
536     keepdir="$1"
537 niro 1113 install -v -d ${BINDIR}/${keepdir} || die
538 niro 2 touch ${BINDIR}/${keepdir}/.keep || die
539     }
540    
541     # creates empty files
542     memptyfile()
543     {
544     local file
545     local path
546    
547     [[ -z "$1" ]] && die "No file given"
548    
549     file="$1"
550     path="$(dirname ${file})"
551    
552     install -d ${BINDIR}/${path} || die
553     touch ${BINDIR}/${file} || die
554     }
555    
556     mchown()
557     {
558     local owner="$1"
559     local path="$2"
560     local recursive
561    
562     # recursive
563     if [[ $1 = -r ]] || [[ $1 = -R ]]
564     then
565     local recursive="--recursive"
566     local owner="$2"
567     local path="$3"
568     fi
569    
570     [[ -z ${owner} ]] && die "No owner given."
571     [[ -z ${path} ]] && die "No path given."
572    
573 niro 1113 chown -v ${recursive} ${owner} ${BINDIR}/${path} || die
574 niro 2 }
575    
576     mchmod()
577     {
578     local posix="$1"
579     local path="$2"
580     local recursive
581    
582     # recursive
583     if [[ $1 = -r ]] || [[ $1 = -R ]]
584     then
585     local recursive="--recursive"
586     local posix="$2"
587     local path="$3"
588     fi
589    
590     [[ -z ${posix} ]] && die "No posix given."
591     [[ -z ${path} ]] && die "No path given."
592    
593 niro 1113 chmod -v ${recursive} ${posix} ${BINDIR}/${path} || die
594 niro 2 }
595    
596     mlink()
597     {
598     local symlink="$1"
599     local pathto="$2"
600    
601     [[ -z ${symlink} ]] && die "No symlink given."
602     [[ -z ${pathto} ]] && die "No path given."
603    
604 niro 1113 ln -v -snf ${symlink} ${BINDIR}/${pathto} || die
605 niro 2 }