Contents of /branches/magellan-next/include/mtools.sminc
Parent Directory | Revision Log
Revision 8642 -
(show annotations)
(download)
Wed Jul 27 11:09:50 2011 UTC (13 years, 2 months ago) by niro
File size: 16357 byte(s)
Wed Jul 27 11:09:50 2011 UTC (13 years, 2 months ago) by niro
File size: 16357 byte(s)
-added mbindir() function to be split_package friendly
1 | # $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 | # get the pname right with splitpackages |
9 | mpname() |
10 | { |
11 | local pname="${PNAME}" |
12 | [[ ! -z ${SPLIT_PACKAGE_BASE} ]] && pname="${SPLIT_PACKAGE_BASE}" |
13 | |
14 | echo "${pname}" |
15 | } |
16 | |
17 | # get the bindir right with splitpackages |
18 | mbindir() |
19 | { |
20 | echo "${BINDIR}" |
21 | } |
22 | |
23 | # installs initscripts |
24 | # minstallrc /path/to/rc-script {destfilename} |
25 | minstallrc() |
26 | { |
27 | local rcscript |
28 | local file |
29 | |
30 | [[ -z "$1" ]] && die "No initscript given" |
31 | |
32 | # if no fullpath given use file from sourcedir |
33 | if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] |
34 | then |
35 | file="${SOURCEDIR}/$(mpname)/$1" |
36 | else |
37 | file="$1" |
38 | fi |
39 | |
40 | if [[ -n "$2" ]] |
41 | then |
42 | rcscript="$2" |
43 | else |
44 | rcscript="$(basename ${file})" |
45 | fi |
46 | |
47 | # needed directory |
48 | install -d ${BINDIR}/etc/rc.d/init.d || die |
49 | |
50 | # install our initscript |
51 | install -v -m 0755 -o root -g root ${file} ${BINDIR}/etc/rc.d/init.d/${rcscript} || die |
52 | } |
53 | |
54 | # installs environment files |
55 | # minstallenv /path/to/envdfile {destfilename} |
56 | minstallenv() |
57 | { |
58 | local envdfile |
59 | local file |
60 | |
61 | [[ -z "$1" ]] && die "No envd file given" |
62 | |
63 | # if no fullpath given use file from sourcedir |
64 | if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] |
65 | then |
66 | file="${SOURCEDIR}/$(mpname)/$1" |
67 | else |
68 | file="$1" |
69 | fi |
70 | |
71 | if [[ -n "$2" ]] |
72 | then |
73 | envdfile="$2" |
74 | else |
75 | envdfile="$(basename ${file})" |
76 | fi |
77 | |
78 | # needed directory |
79 | install -d ${BINDIR}/etc/env.d || die |
80 | |
81 | # install our envfile |
82 | install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/env.d/${envdfile} || die |
83 | } |
84 | |
85 | # installs system configuration files |
86 | # minstallconf /path/to/confdfile {destfilename} |
87 | minstallconf() |
88 | { |
89 | local confdfile |
90 | local file |
91 | |
92 | [[ -z "$1" ]] && die "No confd file given" |
93 | |
94 | # if no fullpath given use file from sourcedir |
95 | if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] |
96 | then |
97 | file="${SOURCEDIR}/$(mpname)/$1" |
98 | else |
99 | file="$1" |
100 | fi |
101 | |
102 | if [[ -n "$2" ]] |
103 | then |
104 | confdfile="$2" |
105 | else |
106 | confdfile="$(basename ${file})" |
107 | fi |
108 | |
109 | # needed directory |
110 | install -d ${BINDIR}/etc/conf.d || die |
111 | |
112 | # install our configfile |
113 | install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/conf.d/${confdfile} || die |
114 | } |
115 | |
116 | # installs system configuration files to etc |
117 | # minstalletc /path/to/etcfile {destfilename} {destdir path} |
118 | minstalletc() |
119 | { |
120 | local etcfile |
121 | local file |
122 | local destdir |
123 | |
124 | [[ -z "$1" ]] && die "No etc file given" |
125 | |
126 | # if no fullpath given use file from sourcedir |
127 | if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] |
128 | then |
129 | file="${SOURCEDIR}/$(mpname)/$1" |
130 | else |
131 | file="$1" |
132 | fi |
133 | |
134 | if [[ -n "$2" ]] |
135 | then |
136 | etcfile="$2" |
137 | else |
138 | etcfile="$(basename ${file})" |
139 | fi |
140 | |
141 | if [[ -n "$3" ]] |
142 | then |
143 | destdir="$3" |
144 | else |
145 | destdir="/etc" |
146 | fi |
147 | |
148 | # needed directory |
149 | install -d ${BINDIR}/${destdir} || die |
150 | |
151 | # install our configfile |
152 | install -v -m 0644 -o root -g root ${file} ${BINDIR}/${destdir}/${etcfile} || die |
153 | } |
154 | |
155 | minstalludevrule() |
156 | { |
157 | local udevrule |
158 | local file |
159 | |
160 | [[ -z "$1" ]] && die "No udev rule given" |
161 | |
162 | # if no fullpath given use file from sourcedir |
163 | if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] |
164 | then |
165 | file="${SOURCEDIR}/$(mpname)/$1" |
166 | else |
167 | file="$1" |
168 | fi |
169 | |
170 | if [[ -n "$2" ]] |
171 | then |
172 | udevrule="$2" |
173 | else |
174 | udevrule="$(basename ${file})" |
175 | fi |
176 | |
177 | # needed directory |
178 | install -d ${BINDIR}/etc/udev/rules.d || die |
179 | |
180 | # install our udev rule |
181 | install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/udev/rules.d/${udevrule} || die |
182 | } |
183 | |
184 | minstalludevhelper() |
185 | { |
186 | local udevhelper |
187 | local file |
188 | |
189 | [[ -z "$1" ]] && die "No udev helper given" |
190 | |
191 | # if no fullpath given use file from sourcedir |
192 | if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] |
193 | then |
194 | file="${SOURCEDIR}/$(mpname)/$1" |
195 | else |
196 | file="$1" |
197 | fi |
198 | |
199 | if [[ -n "$2" ]] |
200 | then |
201 | udevhelper="$2" |
202 | else |
203 | udevhelper="$(basename ${file})" |
204 | fi |
205 | |
206 | # needed directory |
207 | install -d ${BINDIR}/lib/udev || die |
208 | |
209 | # install our udev-helper |
210 | install -v -m 0755 -o root -g root ${file} ${BINDIR}/lib/udev/${udevhelper} || die |
211 | } |
212 | |
213 | minstallhalinformation() |
214 | { |
215 | local halrule |
216 | local file |
217 | |
218 | [[ -z "$1" ]] && die "No hal rule given" |
219 | |
220 | # if no fullpath given use file from sourcedir |
221 | if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] |
222 | then |
223 | file="${SOURCEDIR}/$(mpname)/$1" |
224 | else |
225 | file="$1" |
226 | fi |
227 | |
228 | if [[ -n "$2" ]] |
229 | then |
230 | halrule="$2" |
231 | else |
232 | halrule="$(basename ${file})" |
233 | fi |
234 | |
235 | # needed directory |
236 | install -d ${BINDIR}/usr/share/hal/fdi/information/20thirdparty || die |
237 | |
238 | # install our udev rule |
239 | install -v -m 0644 -o root -g root ${file} ${BINDIR}/usr/share/hal/fdi/information/20thirdparty/${halrule} || die |
240 | } |
241 | |
242 | minstallhalpolicy() |
243 | { |
244 | local halrule |
245 | local file |
246 | |
247 | [[ -z "$1" ]] && die "No hal rule given" |
248 | |
249 | # if no fullpath given use file from sourcedir |
250 | if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] |
251 | then |
252 | file="${SOURCEDIR}/$(mpname)/$1" |
253 | else |
254 | file="$1" |
255 | fi |
256 | |
257 | if [[ -n "$2" ]] |
258 | then |
259 | halrule="$2" |
260 | else |
261 | halrule="$(basename ${file})" |
262 | fi |
263 | |
264 | # needed directory |
265 | install -d ${BINDIR}/usr/share/hal/fdi/policy/20thirdparty || die |
266 | |
267 | # install our udev rule |
268 | install -v -m 0644 -o root -g root ${file} ${BINDIR}/usr/share/hal/fdi/policy/20thirdparty/${halrule} || die |
269 | } |
270 | |
271 | minstallhalpreprobe() |
272 | { |
273 | local halrule |
274 | local file |
275 | |
276 | [[ -z "$1" ]] && die "No hal rule given" |
277 | |
278 | # if no fullpath given use file from sourcedir |
279 | if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] |
280 | then |
281 | file="${SOURCEDIR}/$(mpname)/$1" |
282 | else |
283 | file="$1" |
284 | fi |
285 | |
286 | if [[ -n "$2" ]] |
287 | then |
288 | halrule="$2" |
289 | else |
290 | halrule="$(basename ${file})" |
291 | fi |
292 | |
293 | # needed directory |
294 | install -d ${BINDIR}/usr/share/hal/fdi/preprobe/10osvendor || die |
295 | |
296 | # install our udev rule |
297 | install -v -m 0644 -o root -g root ${file} ${BINDIR}/usr/share/hal/fdi/preprobe/10osvendor/${halrule} || die |
298 | } |
299 | |
300 | # install man files to appropiate dirs |
301 | # minstallman /path/to/manfile.foo |
302 | minstallman() |
303 | { |
304 | local manfile |
305 | local mandir |
306 | local file |
307 | |
308 | [[ -z "$@" ]] && die "No man file given" |
309 | |
310 | for file in $@ |
311 | do |
312 | manfile="$(basename ${file})" |
313 | mandir="man${manfile##*.}" |
314 | |
315 | install -d ${BINDIR}/usr/share/man/${mandir} || die |
316 | install -v -m0644 ${file} ${BINDIR}/usr/share/man/${mandir}/${manfile} || die |
317 | done |
318 | } |
319 | |
320 | # install info files to appropiate dirs |
321 | # minstallinfo /path/to/infofile.foo |
322 | minstallinfo() |
323 | { |
324 | local file |
325 | |
326 | [[ -z "$@" ]] && die "No info file given" |
327 | |
328 | for file in $@ |
329 | do |
330 | install -d ${BINDIR}/usr/share/info || die |
331 | install -v -m0644 ${file} ${BINDIR}/usr/share/info/$(basename ${file}) || die |
332 | done |
333 | } |
334 | |
335 | # install html files to appropiate dirs |
336 | # minstallhtml /path/to/infofile.foo |
337 | minstallhtml() |
338 | { |
339 | local file |
340 | local subfile |
341 | local prefix |
342 | local subprefix |
343 | |
344 | # handle prefix |
345 | case "$1" in |
346 | --prefix|-p) shift; prefix="$1"; shift ;; |
347 | esac |
348 | |
349 | [[ -z "$@" ]] && die "No html file given" |
350 | |
351 | for file in $@ |
352 | do |
353 | install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/html${prefix} || die |
354 | |
355 | if [[ -d ${file} ]] |
356 | then |
357 | for subfile in ${file}/* |
358 | do |
359 | subprefix="$(dirname ${subfile/$(dirname ${file})/})" |
360 | subprefix="${prefix}${subprefix}/" |
361 | |
362 | minstallhtml --prefix ${subprefix} ${subfile} || die |
363 | done |
364 | else |
365 | install -v -m0644 ${file} ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/html/${prefix}$(basename ${file}) || die |
366 | fi |
367 | done |
368 | } |
369 | |
370 | # install pixmaps to appropiate dirs |
371 | # minstallpixmap srcname destname {/path/to} |
372 | minstallpixmap() |
373 | { |
374 | local file |
375 | local destdir |
376 | local destfile |
377 | |
378 | [[ -z "$1" ]] && die "No pixmap given" |
379 | |
380 | # if no fullpath given use file from sourcedir |
381 | if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] |
382 | then |
383 | file="${SOURCEDIR}/$(mpname)/$1" |
384 | else |
385 | file="$1" |
386 | fi |
387 | |
388 | if [[ -n "$2" ]] |
389 | then |
390 | destfile="$2" |
391 | else |
392 | destfile="$(basename ${file})" |
393 | fi |
394 | |
395 | if [[ -n "$3" ]] |
396 | then |
397 | destdir="$3" |
398 | else |
399 | destdir="/usr/share/pixmaps" |
400 | fi |
401 | |
402 | # needed directory |
403 | install -d ${BINDIR}/${destdir} || die |
404 | |
405 | # install our pixmap |
406 | install -v -m 0644 -o root -g root ${file} ${BINDIR}/${destdir}/${destfile} || die |
407 | } |
408 | |
409 | # installs pam configuration files |
410 | # minstallpam /path/to/pamfile {destfilename} |
411 | minstallpam() |
412 | { |
413 | local pamfile |
414 | local file |
415 | |
416 | [[ -z "$1" ]] && die "No pam file given" |
417 | |
418 | # if no fullpath given use file from sourcedir |
419 | if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] |
420 | then |
421 | file="${SOURCEDIR}/$(mpname)/$1" |
422 | else |
423 | file="$1" |
424 | fi |
425 | |
426 | if [[ -n "$2" ]] |
427 | then |
428 | pamfile="$2" |
429 | else |
430 | pamfile="$(basename ${file})" |
431 | fi |
432 | |
433 | # needed directory |
434 | install -d ${BINDIR}/etc/pam.d || die |
435 | |
436 | # install our configfile |
437 | install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/pam.d/${pamfile} || die |
438 | } |
439 | |
440 | # installs cronjobs |
441 | # minstallcron [hourly|daily|weekly|monthly] /path/to/cronfile {destfilename} |
442 | minstallcron() |
443 | { |
444 | local cronfile |
445 | local loop |
446 | local file |
447 | |
448 | [[ -z "$1" ]] && die "No loop rythem given [hourly|daily|weekly|monthly]" |
449 | [[ -z "$2" ]] && die "No cronfile given" |
450 | |
451 | loop="$1" |
452 | |
453 | # if no fullpath given use file from sourcedir |
454 | if [[ -z $(dirname $2) ]] || [[ $(dirname $2) = . ]] |
455 | then |
456 | file="${SOURCEDIR}/$(mpname)/$2" |
457 | else |
458 | file="$2" |
459 | fi |
460 | |
461 | if [[ -n "$3" ]] |
462 | then |
463 | cronfile="$3" |
464 | else |
465 | cronfile="$(basename ${file})" |
466 | fi |
467 | |
468 | # needed directory |
469 | install -m0750 -d ${BINDIR}/etc/cron.${loop} || die |
470 | |
471 | # install our cronfile |
472 | install -v -m 0750 -o root -g root ${file} ${BINDIR}/etc/cron.${loop}/${cronfile} || die |
473 | } |
474 | |
475 | |
476 | # installs logrotate configuration files |
477 | # minstallpam /path/to/logrotatefile {destfilename} |
478 | minstalllog() |
479 | { |
480 | local logfile |
481 | local file |
482 | |
483 | [[ -z "$1" ]] && die "No logrotate file given" |
484 | |
485 | # if no fullpath given use file from sourcedir |
486 | if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] |
487 | then |
488 | file="${SOURCEDIR}/$(mpname)/$1" |
489 | else |
490 | file="$1" |
491 | fi |
492 | |
493 | if [[ -n "$2" ]] |
494 | then |
495 | logfile="$2" |
496 | else |
497 | logfile="$(basename ${file})" |
498 | fi |
499 | |
500 | # needed directory |
501 | install -d ${BINDIR}/etc/logrotate.d || die |
502 | |
503 | # install our configfile |
504 | install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/logrotate.d/${logfile} || die |
505 | } |
506 | |
507 | |
508 | # installs given directories |
509 | # minstalldir /path/to/dest/dir {/path/to/dest/dirN} |
510 | minstalldir() |
511 | { |
512 | local argv="$@" |
513 | local dest |
514 | |
515 | [[ -z ${argv} ]] && die "No dest dir given" |
516 | for dest in ${argv} |
517 | do |
518 | [[ -d ${BINDIR}${dest} ]] && continue |
519 | install -v -d ${BINDIR}/${dest} || die |
520 | done |
521 | } |
522 | |
523 | |
524 | # install files to given path (defaults to /usr/bin) |
525 | # minstallfile {-s} /path/to/file {/path/to/dest} |
526 | minstallfile() |
527 | { |
528 | local file |
529 | local dest |
530 | |
531 | [[ -z $1 ]] && die "No etc file given" |
532 | |
533 | if [[ $1 = -s ]] |
534 | then |
535 | file="${SOURCEDIR}/$(mpname)/$2" |
536 | dest="$3" |
537 | if [[ -z $3 ]] |
538 | then |
539 | dest=/usr/bin |
540 | install -d ${BINDIR}/${dest} || die |
541 | fi |
542 | else |
543 | file="$1" |
544 | dest="$2" |
545 | if [[ -z $2 ]] |
546 | then |
547 | dest=/usr/bin |
548 | install -d ${BINDIR}/${dest} || die |
549 | fi |
550 | fi |
551 | |
552 | # install our configfile |
553 | install -v -m 0644 -o root -g root ${file} ${BINDIR}/${dest} || die |
554 | } |
555 | |
556 | # installs executables to given path |
557 | # minstallexec {-s} /path/to/exec {/path/to/dest} |
558 | minstallexec() |
559 | { |
560 | local file |
561 | local dest |
562 | |
563 | [[ -z $1 ]] && die "No file given" |
564 | |
565 | if [[ $1 = -s ]] |
566 | then |
567 | file="${SOURCEDIR}/$(mpname)/$2" |
568 | dest="$3" |
569 | if [[ -z $3 ]] |
570 | then |
571 | dest=/usr/bin |
572 | install -d ${BINDIR}/${dest} || die |
573 | fi |
574 | else |
575 | file="$1" |
576 | dest="$2" |
577 | if [[ -z $2 ]] |
578 | then |
579 | dest=/usr/bin |
580 | install -d ${BINDIR}/${dest} || die |
581 | fi |
582 | fi |
583 | |
584 | # install our configfile |
585 | install -v -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die |
586 | } |
587 | |
588 | # installs executables to given path |
589 | # minstalllib {-s} /path/to/exec {/path/to/dest} |
590 | minstalllib() |
591 | { |
592 | local file |
593 | local dest |
594 | local verbose="-v" |
595 | |
596 | # check for busybox as it doesn'tz support 'ln -v' |
597 | [[ $(readlink $(which ln)) = */busybox ]] && verbose="" |
598 | |
599 | [[ -z $1 ]] && die "No file given" |
600 | |
601 | if [[ $1 = -s ]] |
602 | then |
603 | file="${SOURCEDIR}/$(mpname)/$2" |
604 | dest="$3" |
605 | if [[ -z $3 ]] |
606 | then |
607 | dest=/usr/$(mlibdir) |
608 | install -d ${BINDIR}/${dest} || die |
609 | fi |
610 | else |
611 | file="$1" |
612 | dest="$2" |
613 | if [[ -z $2 ]] |
614 | then |
615 | dest=/usr/$(mlibdir) |
616 | install -d ${BINDIR}/${dest} || die |
617 | fi |
618 | fi |
619 | |
620 | # install our library |
621 | install -v -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die |
622 | |
623 | # create libtool symlinks |
624 | # 1. - library.so.1.0.0 -> library.so.1.0 |
625 | if [ "${file%.*}" != *.so ] |
626 | then |
627 | ln ${verbose} -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*}) |
628 | fi |
629 | # 2. - library.so.1.0.0 -> library.so.1 |
630 | if [ "${file%.*.*}" != *.so ] |
631 | then |
632 | ln ${verbose} -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*.*}) |
633 | fi |
634 | } |
635 | |
636 | mcopy() |
637 | { |
638 | local source="$1" |
639 | local dest="$2" |
640 | local opts |
641 | |
642 | # recursive |
643 | if [[ $1 = -r ]] || [[ $1 = -R ]] |
644 | then |
645 | opts="--recursive" |
646 | source="$2" |
647 | dest="$3" |
648 | fi |
649 | |
650 | # recursive |
651 | if [[ $1 = -rf ]] || [[ $1 = -fr ]] || [[ $1 = -Rf ]] || [[ $1 = -fR ]] |
652 | then |
653 | opts="--recursive --force" |
654 | source="$2" |
655 | dest="$3" |
656 | fi |
657 | |
658 | [[ -z ${source} ]] && die "No source given." |
659 | [[ -z ${dest} ]] && die "No dest given." |
660 | |
661 | cp -v ${opts} ${source} ${BINDIR}/${dest} || die |
662 | } |
663 | |
664 | mmove() |
665 | { |
666 | local source="$1" |
667 | local dest="$2" |
668 | local opts |
669 | |
670 | # force |
671 | if [[ $1 = -f ]] |
672 | then |
673 | opts="--force" |
674 | source="$2" |
675 | dest="$3" |
676 | fi |
677 | |
678 | [[ -z ${source} ]] && die "No source given." |
679 | [[ -z ${dest} ]] && die "No dest given." |
680 | |
681 | mv -v ${opts} ${source} ${BINDIR}/${dest} || die |
682 | } |
683 | |
684 | # mark directories undeletable |
685 | mkeepdir() |
686 | { |
687 | local keepdir |
688 | [[ -z "$1" ]] && die "No directory given" |
689 | |
690 | keepdir="$1" |
691 | install -v -d ${BINDIR}/${keepdir} || die |
692 | touch ${BINDIR}/${keepdir}/.keep || die |
693 | } |
694 | |
695 | # creates empty files |
696 | memptyfile() |
697 | { |
698 | local file |
699 | local path |
700 | |
701 | [[ -z "$1" ]] && die "No file given" |
702 | |
703 | file="$1" |
704 | path="$(dirname ${file})" |
705 | |
706 | install -d ${BINDIR}/${path} || die |
707 | touch ${BINDIR}/${file} || die |
708 | } |
709 | |
710 | mchown() |
711 | { |
712 | local owner="$1" |
713 | local path="$2" |
714 | local recursive |
715 | |
716 | # recursive |
717 | if [[ $1 = -r ]] || [[ $1 = -R ]] |
718 | then |
719 | local recursive="--recursive" |
720 | local owner="$2" |
721 | local path="$3" |
722 | fi |
723 | |
724 | [[ -z ${owner} ]] && die "No owner given." |
725 | [[ -z ${path} ]] && die "No path given." |
726 | |
727 | chown -v ${recursive} ${owner} ${BINDIR}/${path} || die |
728 | } |
729 | |
730 | mchmod() |
731 | { |
732 | local posix="$1" |
733 | local path="$2" |
734 | local recursive |
735 | |
736 | # recursive |
737 | if [[ $1 = -r ]] || [[ $1 = -R ]] |
738 | then |
739 | local recursive="--recursive" |
740 | local posix="$2" |
741 | local path="$3" |
742 | fi |
743 | |
744 | [[ -z ${posix} ]] && die "No posix given." |
745 | [[ -z ${path} ]] && die "No path given." |
746 | |
747 | chmod -v ${recursive} ${posix} ${BINDIR}/${path} || die |
748 | } |
749 | |
750 | mlink() |
751 | { |
752 | local symlink="$1" |
753 | local pathto="$2" |
754 | local verbose="-v" |
755 | |
756 | # check for busybox as it doesn'tz support 'ln -v' |
757 | [[ $(readlink $(which ln)) = */busybox ]] && verbose="" |
758 | |
759 | [[ -z ${symlink} ]] && die "No symlink given." |
760 | [[ -z ${pathto} ]] && die "No path given." |
761 | |
762 | ln ${verbose} -snf ${symlink} ${BINDIR}/${pathto} || die |
763 | } |
764 | |
765 | # installs systemd units |
766 | # minstallunit /path/to/unit-file {destfilename} |
767 | minstallunit() |
768 | { |
769 | local unit |
770 | local file |
771 | |
772 | [[ -z "$1" ]] && die "No unit given" |
773 | |
774 | # if no fullpath given use file from sourcedir |
775 | if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] |
776 | then |
777 | file="${SOURCEDIR}/$(mpname)/$1" |
778 | else |
779 | file="$1" |
780 | fi |
781 | |
782 | if [[ -n "$2" ]] |
783 | then |
784 | unit="$2" |
785 | else |
786 | unit="$(basename ${file})" |
787 | fi |
788 | |
789 | # needed directory |
790 | install -d ${BINDIR}/lib/systemd/system || die |
791 | |
792 | # install our initscript |
793 | install -v -m 0644 -o root -g root ${file} ${BINDIR}/lib/systemd/system/${unit} || die |
794 | } |
795 | |
796 | # installs systemd tmp configs to /etc/tmpfiles.d |
797 | # minstalltmp /path/to/tmpdfile {destfilename} |
798 | minstalltmp() |
799 | { |
800 | local tmpdfile |
801 | local file |
802 | |
803 | [[ -z "$1" ]] && die "No tmpd file given" |
804 | |
805 | # if no fullpath given use file from sourcedir |
806 | if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] |
807 | then |
808 | file="${SOURCEDIR}/$(mpname)/$1" |
809 | else |
810 | file="$1" |
811 | fi |
812 | |
813 | if [[ -n "$2" ]] |
814 | then |
815 | tmpdfile="$2" |
816 | else |
817 | tmpdfile="$(basename ${file})" |
818 | fi |
819 | |
820 | # needed directory |
821 | install -d ${BINDIR}/etc/tmpfiles.d || die |
822 | |
823 | # install our tmpdfile |
824 | install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/tmpfiles.d/${tmpdfile} || die |
825 | } |
826 | |
827 | mclearconfig() |
828 | { |
829 | local confdir |
830 | local prefix="${BINDIR}" |
831 | [[ -z ${MCONFIG} ]] && die "No \$MCONFIG given!" |
832 | |
833 | # no bindir prefix if requested |
834 | case $1 in |
835 | -b|--no-bindir) prefix="";; |
836 | esac |
837 | |
838 | confdir="$(dirname ${MCONFIG})" |
839 | if [[ ! -d ${prefix}/${confdir} ]] |
840 | then |
841 | install -d ${prefix}/${confdir} || die |
842 | fi |
843 | : > ${prefix}/${MCONFIG} |
844 | } |
845 | |
846 | maddconfig() |
847 | { |
848 | local argv="$1" |
849 | local confdir |
850 | local prefix="${BINDIR}" |
851 | |
852 | [[ -z ${MCONFIG} ]] && die "No \$MCONFIG given!" |
853 | |
854 | # no bindir prefix if requested |
855 | case $1 in |
856 | -b|--no-bindir) prefix=""; argv="$2" ;; |
857 | esac |
858 | |
859 | [[ -z ${argv} ]] && die "No argument given!" |
860 | |
861 | confdir="$(dirname ${MCONFIG})" |
862 | if [[ ! -d ${prefix}/${confdir} ]] |
863 | then |
864 | install -d ${prefix}/${confdir} || die |
865 | fi |
866 | echo "${argv}" >> ${prefix}/${MCONFIG} || die |
867 | } |