Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 19668 - (hide annotations) (download)
Wed Oct 9 13:09:29 2013 UTC (10 years, 7 months ago) by niro
Original Path: trunk/include/mtools.sminc
File size: 12519 byte(s)
-split udev, hal, systemd and sysvinit functions into seperate includes and use pkgconfig if possible
1 niro 14029 # $Id$
2 niro 2 # some special build tools
3    
4 niro 19668 # get the pname right with split-packages
5 niro 4804 mpname()
6     {
7     local pname="${PNAME}"
8 niro 4807 [[ ! -z ${SPLIT_PACKAGE_BASE} ]] && pname="${SPLIT_PACKAGE_BASE}"
9 niro 4804
10     echo "${pname}"
11     }
12    
13 niro 2 # installs environment files
14     # minstallenv /path/to/envdfile {destfilename}
15     minstallenv()
16     {
17     local envdfile
18     local file
19    
20     [[ -z "$1" ]] && die "No envd file given"
21    
22     # if no fullpath given use file from sourcedir
23     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
24     then
25 niro 4804 file="${SOURCEDIR}/$(mpname)/$1"
26 niro 2 else
27     file="$1"
28     fi
29    
30     if [[ -n "$2" ]]
31     then
32     envdfile="$2"
33     else
34     envdfile="$(basename ${file})"
35     fi
36    
37     # needed directory
38     install -d ${BINDIR}/etc/env.d || die
39    
40     # install our envfile
41 niro 1113 install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/env.d/${envdfile} || die
42 niro 2 }
43    
44     # installs system configuration files
45     # minstallconf /path/to/confdfile {destfilename}
46     minstallconf()
47     {
48     local confdfile
49     local file
50    
51     [[ -z "$1" ]] && die "No confd file given"
52    
53     # if no fullpath given use file from sourcedir
54     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
55     then
56 niro 4804 file="${SOURCEDIR}/$(mpname)/$1"
57 niro 2 else
58     file="$1"
59     fi
60    
61     if [[ -n "$2" ]]
62     then
63     confdfile="$2"
64     else
65     confdfile="$(basename ${file})"
66     fi
67    
68     # needed directory
69     install -d ${BINDIR}/etc/conf.d || die
70    
71     # install our configfile
72 niro 1113 install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/conf.d/${confdfile} || die
73 niro 2 }
74    
75     # installs system configuration files to etc
76     # minstalletc /path/to/etcfile {destfilename} {destdir path}
77     minstalletc()
78     {
79     local etcfile
80     local file
81     local destdir
82    
83     [[ -z "$1" ]] && die "No etc file given"
84    
85     # if no fullpath given use file from sourcedir
86     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
87     then
88 niro 4804 file="${SOURCEDIR}/$(mpname)/$1"
89 niro 2 else
90     file="$1"
91     fi
92    
93     if [[ -n "$2" ]]
94     then
95     etcfile="$2"
96     else
97     etcfile="$(basename ${file})"
98     fi
99    
100     if [[ -n "$3" ]]
101     then
102     destdir="$3"
103     else
104     destdir="/etc"
105     fi
106    
107     # needed directory
108     install -d ${BINDIR}/${destdir} || die
109    
110     # install our configfile
111 niro 1113 install -v -m 0644 -o root -g root ${file} ${BINDIR}/${destdir}/${etcfile} || die
112 niro 2 }
113    
114     # install man files to appropiate dirs
115     # minstallman /path/to/manfile.foo
116     minstallman()
117     {
118     local manfile
119     local mandir
120     local file
121    
122     [[ -z "$@" ]] && die "No man file given"
123    
124     for file in $@
125     do
126     manfile="$(basename ${file})"
127     mandir="man${manfile##*.}"
128    
129     install -d ${BINDIR}/usr/share/man/${mandir} || die
130 niro 1113 install -v -m0644 ${file} ${BINDIR}/usr/share/man/${mandir}/${manfile} || die
131 niro 2 done
132     }
133    
134     # install info files to appropiate dirs
135     # minstallinfo /path/to/infofile.foo
136     minstallinfo()
137     {
138     local file
139    
140     [[ -z "$@" ]] && die "No info file given"
141    
142     for file in $@
143     do
144     install -d ${BINDIR}/usr/share/info || die
145 niro 1113 install -v -m0644 ${file} ${BINDIR}/usr/share/info/$(basename ${file}) || die
146 niro 2 done
147     }
148    
149     # install html files to appropiate dirs
150     # minstallhtml /path/to/infofile.foo
151     minstallhtml()
152     {
153     local file
154     local subfile
155     local prefix
156     local subprefix
157    
158     # handle prefix
159     case "$1" in
160     --prefix|-p) shift; prefix="$1"; shift ;;
161     esac
162    
163     [[ -z "$@" ]] && die "No html file given"
164    
165     for file in $@
166     do
167     install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/html${prefix} || die
168    
169     if [[ -d ${file} ]]
170     then
171     for subfile in ${file}/*
172     do
173     subprefix="$(dirname ${subfile/$(dirname ${file})/})"
174     subprefix="${prefix}${subprefix}/"
175    
176     minstallhtml --prefix ${subprefix} ${subfile} || die
177     done
178     else
179 niro 1113 install -v -m0644 ${file} ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/html/${prefix}$(basename ${file}) || die
180 niro 2 fi
181     done
182     }
183    
184     # install pixmaps to appropiate dirs
185     # minstallpixmap srcname destname {/path/to}
186     minstallpixmap()
187     {
188     local file
189     local destdir
190     local destfile
191    
192     [[ -z "$1" ]] && die "No pixmap given"
193    
194     # if no fullpath given use file from sourcedir
195     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
196     then
197 niro 4804 file="${SOURCEDIR}/$(mpname)/$1"
198 niro 2 else
199     file="$1"
200     fi
201    
202     if [[ -n "$2" ]]
203     then
204     destfile="$2"
205     else
206     destfile="$(basename ${file})"
207     fi
208    
209     if [[ -n "$3" ]]
210     then
211     destdir="$3"
212     else
213     destdir="/usr/share/pixmaps"
214     fi
215    
216     # needed directory
217     install -d ${BINDIR}/${destdir} || die
218    
219     # install our pixmap
220 niro 1113 install -v -m 0644 -o root -g root ${file} ${BINDIR}/${destdir}/${destfile} || die
221 niro 2 }
222    
223     # installs pam configuration files
224     # minstallpam /path/to/pamfile {destfilename}
225     minstallpam()
226     {
227     local pamfile
228     local file
229    
230     [[ -z "$1" ]] && die "No pam file given"
231    
232     # if no fullpath given use file from sourcedir
233     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
234     then
235 niro 4804 file="${SOURCEDIR}/$(mpname)/$1"
236 niro 2 else
237     file="$1"
238     fi
239    
240     if [[ -n "$2" ]]
241     then
242     pamfile="$2"
243     else
244     pamfile="$(basename ${file})"
245     fi
246    
247     # needed directory
248     install -d ${BINDIR}/etc/pam.d || die
249    
250     # install our configfile
251 niro 1113 install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/pam.d/${pamfile} || die
252 niro 2 }
253    
254     # installs cronjobs
255     # minstallcron [hourly|daily|weekly|monthly] /path/to/cronfile {destfilename}
256     minstallcron()
257     {
258     local cronfile
259     local loop
260     local file
261    
262     [[ -z "$1" ]] && die "No loop rythem given [hourly|daily|weekly|monthly]"
263     [[ -z "$2" ]] && die "No cronfile given"
264    
265     loop="$1"
266    
267     # if no fullpath given use file from sourcedir
268     if [[ -z $(dirname $2) ]] || [[ $(dirname $2) = . ]]
269     then
270 niro 4804 file="${SOURCEDIR}/$(mpname)/$2"
271 niro 2 else
272     file="$2"
273     fi
274    
275     if [[ -n "$3" ]]
276     then
277     cronfile="$3"
278     else
279     cronfile="$(basename ${file})"
280     fi
281    
282     # needed directory
283     install -m0750 -d ${BINDIR}/etc/cron.${loop} || die
284    
285     # install our cronfile
286 niro 1113 install -v -m 0750 -o root -g root ${file} ${BINDIR}/etc/cron.${loop}/${cronfile} || die
287 niro 2 }
288    
289    
290     # installs logrotate configuration files
291 niro 8809 # minstalllog /path/to/logrotatefile {destfilename}
292 niro 2 minstalllog()
293     {
294     local logfile
295     local file
296    
297     [[ -z "$1" ]] && die "No logrotate file given"
298    
299     # if no fullpath given use file from sourcedir
300     if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]
301     then
302 niro 4804 file="${SOURCEDIR}/$(mpname)/$1"
303 niro 2 else
304     file="$1"
305     fi
306    
307     if [[ -n "$2" ]]
308     then
309     logfile="$2"
310     else
311     logfile="$(basename ${file})"
312     fi
313    
314     # needed directory
315     install -d ${BINDIR}/etc/logrotate.d || die
316    
317     # install our configfile
318 niro 1113 install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/logrotate.d/${logfile} || die
319 niro 2 }
320    
321    
322     # installs given directories
323     # minstalldir /path/to/dest/dir {/path/to/dest/dirN}
324     minstalldir()
325     {
326     local argv="$@"
327     local dest
328    
329     [[ -z ${argv} ]] && die "No dest dir given"
330     for dest in ${argv}
331     do
332     [[ -d ${BINDIR}${dest} ]] && continue
333 niro 1113 install -v -d ${BINDIR}/${dest} || die
334 niro 2 done
335     }
336    
337    
338     # install files to given path (defaults to /usr/bin)
339     # minstallfile {-s} /path/to/file {/path/to/dest}
340     minstallfile()
341     {
342     local file
343     local dest
344    
345     [[ -z $1 ]] && die "No etc file given"
346    
347     if [[ $1 = -s ]]
348     then
349 niro 4804 file="${SOURCEDIR}/$(mpname)/$2"
350 niro 2 dest="$3"
351     if [[ -z $3 ]]
352     then
353     dest=/usr/bin
354     install -d ${BINDIR}/${dest} || die
355     fi
356     else
357     file="$1"
358     dest="$2"
359     if [[ -z $2 ]]
360     then
361     dest=/usr/bin
362     install -d ${BINDIR}/${dest} || die
363     fi
364     fi
365    
366     # install our configfile
367 niro 1113 install -v -m 0644 -o root -g root ${file} ${BINDIR}/${dest} || die
368 niro 2 }
369    
370     # installs executables to given path
371     # minstallexec {-s} /path/to/exec {/path/to/dest}
372     minstallexec()
373     {
374     local file
375     local dest
376    
377     [[ -z $1 ]] && die "No file given"
378    
379     if [[ $1 = -s ]]
380     then
381 niro 4804 file="${SOURCEDIR}/$(mpname)/$2"
382 niro 2 dest="$3"
383     if [[ -z $3 ]]
384     then
385     dest=/usr/bin
386     install -d ${BINDIR}/${dest} || die
387     fi
388     else
389     file="$1"
390     dest="$2"
391     if [[ -z $2 ]]
392     then
393     dest=/usr/bin
394     install -d ${BINDIR}/${dest} || die
395     fi
396     fi
397    
398     # install our configfile
399 niro 1113 install -v -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die
400 niro 2 }
401    
402     # installs executables to given path
403     # minstalllib {-s} /path/to/exec {/path/to/dest}
404     minstalllib()
405     {
406     local file
407     local dest
408 niro 4806 local verbose="-v"
409 niro 2
410 niro 14029 # check for busybox as it doesn't support 'ln -v'
411 niro 4806 [[ $(readlink $(which ln)) = */busybox ]] && verbose=""
412    
413 niro 2 [[ -z $1 ]] && die "No file given"
414    
415     if [[ $1 = -s ]]
416     then
417 niro 4804 file="${SOURCEDIR}/$(mpname)/$2"
418 niro 2 dest="$3"
419     if [[ -z $3 ]]
420     then
421     dest=/usr/$(mlibdir)
422     install -d ${BINDIR}/${dest} || die
423     fi
424     else
425     file="$1"
426     dest="$2"
427     if [[ -z $2 ]]
428     then
429     dest=/usr/$(mlibdir)
430     install -d ${BINDIR}/${dest} || die
431     fi
432     fi
433    
434     # install our library
435 niro 1113 install -v -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die
436 niro 2
437 niro 14029 # prefer scanelf
438     if [[ -x $(type -P scanelf) ]]
439 niro 2 then
440 niro 14481 local soname="$(scanelf -qBF '%S#p' ${file})"
441 niro 14029 ln ${verbose} -snf $(basename ${file}) ${BINDIR}/${dest}/${soname} || die
442     else
443     echo -e "${COLYELLOW}minstalllib(): Warning: scanelf not found, using fallback symlink method${COLDEFAULT}"
444    
445     # create libtool symlinks
446     # 1. - library.so.1.0.0 -> library.so.1.0
447     if [ "${file%.*}" != *.so ]
448     then
449     ln ${verbose} -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*}) || die
450     fi
451     # 2. - library.so.1.0.0 -> library.so.1
452     if [ "${file%.*.*}" != *.so ]
453     then
454     ln ${verbose} -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*.*}) || die
455     fi
456     # 3. - library.so.1.0.0.0 -> library.so.1
457     if [ "${file%.*.*.*}" != *.so ]
458     then
459     ln ${verbose} -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*.*.*}) || die
460     fi
461 niro 2 fi
462     }
463    
464 niro 2166 mcopy()
465     {
466     local source="$1"
467     local dest="$2"
468     local opts
469    
470     # recursive
471     if [[ $1 = -r ]] || [[ $1 = -R ]]
472     then
473 niro 11761 opts="-R"
474 niro 2166 source="$2"
475     dest="$3"
476     fi
477    
478     # recursive
479     if [[ $1 = -rf ]] || [[ $1 = -fr ]] || [[ $1 = -Rf ]] || [[ $1 = -fR ]]
480     then
481 niro 11761 opts="-R -f"
482 niro 2166 source="$2"
483     dest="$3"
484     fi
485    
486 niro 9862 if [[ $1 = -a ]]
487     then
488 niro 11761 opts="-a"
489 niro 9862 source="$2"
490     dest="$3"
491     fi
492    
493 niro 2166 [[ -z ${source} ]] && die "No source given."
494     [[ -z ${dest} ]] && die "No dest given."
495    
496     cp -v ${opts} ${source} ${BINDIR}/${dest} || die
497     }
498    
499 niro 12652 mdelete()
500     {
501     local dest="$1"
502     local opts
503    
504 niro 17041 # enforce
505     if [[ $1 = -f ]]
506     then
507     opts="-f"
508     dest="$2"
509     fi
510    
511 niro 12652 # recursive
512     if [[ $1 = -r ]] || [[ $1 = -R ]]
513     then
514     opts="-r"
515     dest="$2"
516     fi
517    
518     # recursive
519     if [[ $1 = -rf ]] || [[ $1 = -fr ]] || [[ $1 = -Rf ]] || [[ $1 = -fR ]]
520     then
521     opts="-r -f"
522     dest="$2"
523     fi
524    
525     [[ -z ${dest} ]] && die "No dest given."
526 niro 14484 [[ ! -e ${BINDIR}/${dest} ]] && die "${BINDIR}/${dest} does not exist."
527 niro 12652
528     rm -v ${opts} ${BINDIR}/${dest} || die
529     }
530    
531 niro 2166 mmove()
532     {
533     local source="$1"
534     local dest="$2"
535     local opts
536    
537     # force
538     if [[ $1 = -f ]]
539     then
540 niro 11761 opts="-f"
541 niro 2166 source="$2"
542     dest="$3"
543     fi
544    
545     [[ -z ${source} ]] && die "No source given."
546     [[ -z ${dest} ]] && die "No dest given."
547    
548     mv -v ${opts} ${source} ${BINDIR}/${dest} || die
549     }
550    
551     # mark directories undeletable
552 niro 2 mkeepdir()
553     {
554     local keepdir
555     [[ -z "$1" ]] && die "No directory given"
556    
557     keepdir="$1"
558 niro 1113 install -v -d ${BINDIR}/${keepdir} || die
559 niro 2 touch ${BINDIR}/${keepdir}/.keep || die
560     }
561    
562     # creates empty files
563     memptyfile()
564     {
565     local file
566     local path
567    
568     [[ -z "$1" ]] && die "No file given"
569    
570     file="$1"
571     path="$(dirname ${file})"
572    
573     install -d ${BINDIR}/${path} || die
574     touch ${BINDIR}/${file} || die
575     }
576    
577     mchown()
578     {
579     local owner="$1"
580     local path="$2"
581     local recursive
582    
583     # recursive
584     if [[ $1 = -r ]] || [[ $1 = -R ]]
585     then
586 niro 11761 local recursive="-R"
587 niro 2 local owner="$2"
588     local path="$3"
589     fi
590    
591     [[ -z ${owner} ]] && die "No owner given."
592     [[ -z ${path} ]] && die "No path given."
593    
594 niro 1113 chown -v ${recursive} ${owner} ${BINDIR}/${path} || die
595 niro 2 }
596    
597     mchmod()
598     {
599     local posix="$1"
600     local path="$2"
601     local recursive
602    
603     # recursive
604     if [[ $1 = -r ]] || [[ $1 = -R ]]
605     then
606 niro 11761 local recursive="-R"
607 niro 2 local posix="$2"
608     local path="$3"
609     fi
610    
611     [[ -z ${posix} ]] && die "No posix given."
612     [[ -z ${path} ]] && die "No path given."
613    
614 niro 1113 chmod -v ${recursive} ${posix} ${BINDIR}/${path} || die
615 niro 2 }
616    
617     mlink()
618     {
619     local symlink="$1"
620     local pathto="$2"
621 niro 4806 local verbose="-v"
622 niro 2
623 niro 4806 # check for busybox as it doesn'tz support 'ln -v'
624     [[ $(readlink $(which ln)) = */busybox ]] && verbose=""
625    
626 niro 2 [[ -z ${symlink} ]] && die "No symlink given."
627     [[ -z ${pathto} ]] && die "No path given."
628    
629 niro 4806 ln ${verbose} -snf ${symlink} ${BINDIR}/${pathto} || die
630 niro 2 }
631 niro 7874
632 niro 8469 mclearconfig()
633     {
634     local confdir
635     local prefix="${BINDIR}"
636     [[ -z ${MCONFIG} ]] && die "No \$MCONFIG given!"
637    
638     # no bindir prefix if requested
639     case $1 in
640     -b|--no-bindir) prefix="";;
641     esac
642    
643     confdir="$(dirname ${MCONFIG})"
644     if [[ ! -d ${prefix}/${confdir} ]]
645     then
646     install -d ${prefix}/${confdir} || die
647     fi
648     : > ${prefix}/${MCONFIG}
649     }
650    
651     maddconfig()
652     {
653     local argv="$1"
654     local confdir
655     local prefix="${BINDIR}"
656    
657     [[ -z ${MCONFIG} ]] && die "No \$MCONFIG given!"
658    
659     # no bindir prefix if requested
660     case $1 in
661     -b|--no-bindir) prefix=""; argv="$2" ;;
662     esac
663    
664 niro 16994 #[[ -z ${argv} ]] && die "No argument given!"
665 niro 8469
666     confdir="$(dirname ${MCONFIG})"
667     if [[ ! -d ${prefix}/${confdir} ]]
668     then
669     install -d ${prefix}/${confdir} || die
670     fi
671     echo "${argv}" >> ${prefix}/${MCONFIG} || die
672     }