--- trunk/core/include/mtools.sminc 2008/10/10 13:29:42 2 +++ branches/magellan-next/include/mtools.sminc 2011/06/02 20:44:40 7874 @@ -5,6 +5,15 @@ # this will provide the service management functions INHERITS="${INHERITS} mtools" +# get the pname right with splitpackages +mpname() +{ + local pname="${PNAME}" + [[ ! -z ${SPLIT_PACKAGE_BASE} ]] && pname="${SPLIT_PACKAGE_BASE}" + + echo "${pname}" +} + # installs initscripts # minstallrc /path/to/rc-script {destfilename} minstallrc() @@ -17,7 +26,7 @@ # if no fullpath given use file from sourcedir if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] then - file="${SOURCEDIR}/${PNAME}/$1" + file="${SOURCEDIR}/$(mpname)/$1" else file="$1" fi @@ -33,7 +42,7 @@ install -d ${BINDIR}/etc/rc.d/init.d || die # install our initscript - install -m 0755 -o root -g root ${file} ${BINDIR}/etc/rc.d/init.d/${rcscript} || die + install -v -m 0755 -o root -g root ${file} ${BINDIR}/etc/rc.d/init.d/${rcscript} || die } # installs environment files @@ -48,7 +57,7 @@ # if no fullpath given use file from sourcedir if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] then - file="${SOURCEDIR}/${PNAME}/$1" + file="${SOURCEDIR}/$(mpname)/$1" else file="$1" fi @@ -64,7 +73,7 @@ install -d ${BINDIR}/etc/env.d || die # install our envfile - install -m 0644 -o root -g root ${file} ${BINDIR}/etc/env.d/${envdfile} || die + install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/env.d/${envdfile} || die } # installs system configuration files @@ -79,7 +88,7 @@ # if no fullpath given use file from sourcedir if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] then - file="${SOURCEDIR}/${PNAME}/$1" + file="${SOURCEDIR}/$(mpname)/$1" else file="$1" fi @@ -95,7 +104,7 @@ install -d ${BINDIR}/etc/conf.d || die # install our configfile - install -m 0644 -o root -g root ${file} ${BINDIR}/etc/conf.d/${confdfile} || die + install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/conf.d/${confdfile} || die } # installs system configuration files to etc @@ -111,7 +120,7 @@ # if no fullpath given use file from sourcedir if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] then - file="${SOURCEDIR}/${PNAME}/$1" + file="${SOURCEDIR}/$(mpname)/$1" else file="$1" fi @@ -134,7 +143,152 @@ install -d ${BINDIR}/${destdir} || die # install our configfile - install -m 0644 -o root -g root ${file} ${BINDIR}/${destdir}/${etcfile} || die + install -v -m 0644 -o root -g root ${file} ${BINDIR}/${destdir}/${etcfile} || die +} + +minstalludevrule() +{ + local udevrule + local file + + [[ -z "$1" ]] && die "No udev rule given" + + # if no fullpath given use file from sourcedir + if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] + then + file="${SOURCEDIR}/$(mpname)/$1" + else + file="$1" + fi + + if [[ -n "$2" ]] + then + udevrule="$2" + else + udevrule="$(basename ${file})" + fi + + # needed directory + install -d ${BINDIR}/etc/udev/rules.d || die + + # install our udev rule + install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/udev/rules.d/${udevrule} || die +} + +minstalludevhelper() +{ + local udevhelper + local file + + [[ -z "$1" ]] && die "No udev helper given" + + # if no fullpath given use file from sourcedir + if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] + then + file="${SOURCEDIR}/$(mpname)/$1" + else + file="$1" + fi + + if [[ -n "$2" ]] + then + udevhelper="$2" + else + udevhelper="$(basename ${file})" + fi + + # needed directory + install -d ${BINDIR}/lib/udev || die + + # install our udev-helper + install -v -m 0755 -o root -g root ${file} ${BINDIR}/lib/udev/${udevhelper} || die +} + +minstallhalinformation() +{ + local halrule + local file + + [[ -z "$1" ]] && die "No hal rule given" + + # if no fullpath given use file from sourcedir + if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] + then + file="${SOURCEDIR}/$(mpname)/$1" + else + file="$1" + fi + + if [[ -n "$2" ]] + then + halrule="$2" + else + halrule="$(basename ${file})" + fi + + # needed directory + install -d ${BINDIR}/usr/share/hal/fdi/information/20thirdparty || die + + # install our udev rule + install -v -m 0644 -o root -g root ${file} ${BINDIR}/usr/share/hal/fdi/information/20thirdparty/${halrule} || die +} + +minstallhalpolicy() +{ + local halrule + local file + + [[ -z "$1" ]] && die "No hal rule given" + + # if no fullpath given use file from sourcedir + if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] + then + file="${SOURCEDIR}/$(mpname)/$1" + else + file="$1" + fi + + if [[ -n "$2" ]] + then + halrule="$2" + else + halrule="$(basename ${file})" + fi + + # needed directory + install -d ${BINDIR}/usr/share/hal/fdi/policy/20thirdparty || die + + # install our udev rule + install -v -m 0644 -o root -g root ${file} ${BINDIR}/usr/share/hal/fdi/policy/20thirdparty/${halrule} || die +} + +minstallhalpreprobe() +{ + local halrule + local file + + [[ -z "$1" ]] && die "No hal rule given" + + # if no fullpath given use file from sourcedir + if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] + then + file="${SOURCEDIR}/$(mpname)/$1" + else + file="$1" + fi + + if [[ -n "$2" ]] + then + halrule="$2" + else + halrule="$(basename ${file})" + fi + + # needed directory + install -d ${BINDIR}/usr/share/hal/fdi/preprobe/10osvendor || die + + # install our udev rule + install -v -m 0644 -o root -g root ${file} ${BINDIR}/usr/share/hal/fdi/preprobe/10osvendor/${halrule} || die } # install man files to appropiate dirs @@ -153,7 +307,7 @@ mandir="man${manfile##*.}" install -d ${BINDIR}/usr/share/man/${mandir} || die - install -m0644 ${file} ${BINDIR}/usr/share/man/${mandir}/${manfile} || die + install -v -m0644 ${file} ${BINDIR}/usr/share/man/${mandir}/${manfile} || die done } @@ -168,7 +322,7 @@ for file in $@ do install -d ${BINDIR}/usr/share/info || die - install -m0644 ${file} ${BINDIR}/usr/share/info/$(basename ${file}) || die + install -v -m0644 ${file} ${BINDIR}/usr/share/info/$(basename ${file}) || die done } @@ -202,7 +356,7 @@ minstallhtml --prefix ${subprefix} ${subfile} || die done else - install -m0644 ${file} ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/html/${prefix}$(basename ${file}) || die + install -v -m0644 ${file} ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/html/${prefix}$(basename ${file}) || die fi done } @@ -220,7 +374,7 @@ # if no fullpath given use file from sourcedir if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] then - file="${SOURCEDIR}/${PNAME}/$1" + file="${SOURCEDIR}/$(mpname)/$1" else file="$1" fi @@ -243,7 +397,7 @@ install -d ${BINDIR}/${destdir} || die # install our pixmap - install -m 0644 -o root -g root ${file} ${BINDIR}/${destdir}/${destfile} || die + install -v -m 0644 -o root -g root ${file} ${BINDIR}/${destdir}/${destfile} || die } # installs pam configuration files @@ -258,7 +412,7 @@ # if no fullpath given use file from sourcedir if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] then - file="${SOURCEDIR}/${PNAME}/$1" + file="${SOURCEDIR}/$(mpname)/$1" else file="$1" fi @@ -274,7 +428,7 @@ install -d ${BINDIR}/etc/pam.d || die # install our configfile - install -m 0644 -o root -g root ${file} ${BINDIR}/etc/pam.d/${pamfile} || die + install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/pam.d/${pamfile} || die } # installs cronjobs @@ -293,7 +447,7 @@ # if no fullpath given use file from sourcedir if [[ -z $(dirname $2) ]] || [[ $(dirname $2) = . ]] then - file="${SOURCEDIR}/${PNAME}/$2" + file="${SOURCEDIR}/$(mpname)/$2" else file="$2" fi @@ -309,7 +463,7 @@ install -m0750 -d ${BINDIR}/etc/cron.${loop} || die # install our cronfile - install -m 0750 -o root -g root ${file} ${BINDIR}/etc/cron.${loop}/${cronfile} || die + install -v -m 0750 -o root -g root ${file} ${BINDIR}/etc/cron.${loop}/${cronfile} || die } @@ -325,7 +479,7 @@ # if no fullpath given use file from sourcedir if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] then - file="${SOURCEDIR}/${PNAME}/$1" + file="${SOURCEDIR}/$(mpname)/$1" else file="$1" fi @@ -341,7 +495,7 @@ install -d ${BINDIR}/etc/logrotate.d || die # install our configfile - install -m 0644 -o root -g root ${file} ${BINDIR}/etc/logrotate.d/${logfile} || die + install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/logrotate.d/${logfile} || die } @@ -356,7 +510,7 @@ for dest in ${argv} do [[ -d ${BINDIR}${dest} ]] && continue - install -d ${BINDIR}/${dest} || die + install -v -d ${BINDIR}/${dest} || die done } @@ -372,7 +526,7 @@ if [[ $1 = -s ]] then - file="${SOURCEDIR}/${PNAME}/$2" + file="${SOURCEDIR}/$(mpname)/$2" dest="$3" if [[ -z $3 ]] then @@ -390,7 +544,7 @@ fi # install our configfile - install -m 0644 -o root -g root ${file} ${BINDIR}/${dest} || die + install -v -m 0644 -o root -g root ${file} ${BINDIR}/${dest} || die } # installs executables to given path @@ -404,7 +558,7 @@ if [[ $1 = -s ]] then - file="${SOURCEDIR}/${PNAME}/$2" + file="${SOURCEDIR}/$(mpname)/$2" dest="$3" if [[ -z $3 ]] then @@ -422,7 +576,7 @@ fi # install our configfile - install -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die + install -v -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die } # installs executables to given path @@ -431,12 +585,16 @@ { local file local dest + local verbose="-v" + + # check for busybox as it doesn'tz support 'ln -v' + [[ $(readlink $(which ln)) = */busybox ]] && verbose="" [[ -z $1 ]] && die "No file given" if [[ $1 = -s ]] then - file="${SOURCEDIR}/${PNAME}/$2" + file="${SOURCEDIR}/$(mpname)/$2" dest="$3" if [[ -z $3 ]] then @@ -454,29 +612,77 @@ fi # install our library - install -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die + install -v -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die # create libtool symlinks # 1. - library.so.1.0.0 -> library.so.1.0 if [ "${file%.*}" != *.so ] then - ln -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*}) + ln ${verbose} -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*}) fi # 2. - library.so.1.0.0 -> library.so.1 if [ "${file%.*.*}" != *.so ] then - ln -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*.*}) + ln ${verbose} -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*.*}) fi } -# mark directoris undeletable +mcopy() +{ + local source="$1" + local dest="$2" + local opts + + # recursive + if [[ $1 = -r ]] || [[ $1 = -R ]] + then + opts="--recursive" + source="$2" + dest="$3" + fi + + # recursive + if [[ $1 = -rf ]] || [[ $1 = -fr ]] || [[ $1 = -Rf ]] || [[ $1 = -fR ]] + then + opts="--recursive --force" + source="$2" + dest="$3" + fi + + [[ -z ${source} ]] && die "No source given." + [[ -z ${dest} ]] && die "No dest given." + + cp -v ${opts} ${source} ${BINDIR}/${dest} || die +} + +mmove() +{ + local source="$1" + local dest="$2" + local opts + + # force + if [[ $1 = -f ]] + then + opts="--force" + source="$2" + dest="$3" + fi + + [[ -z ${source} ]] && die "No source given." + [[ -z ${dest} ]] && die "No dest given." + + mv -v ${opts} ${source} ${BINDIR}/${dest} || die +} + +# mark directories undeletable mkeepdir() { local keepdir [[ -z "$1" ]] && die "No directory given" keepdir="$1" - install -d ${BINDIR}/${keepdir} || die + install -v -d ${BINDIR}/${keepdir} || die touch ${BINDIR}/${keepdir}/.keep || die } @@ -512,7 +718,7 @@ [[ -z ${owner} ]] && die "No owner given." [[ -z ${path} ]] && die "No path given." - chown ${recursive} ${owner} ${BINDIR}/${path} || die + chown -v ${recursive} ${owner} ${BINDIR}/${path} || die } mchmod() @@ -532,16 +738,82 @@ [[ -z ${posix} ]] && die "No posix given." [[ -z ${path} ]] && die "No path given." - chmod ${recursive} ${posix} ${BINDIR}/${path} || die + chmod -v ${recursive} ${posix} ${BINDIR}/${path} || die } mlink() { local symlink="$1" local pathto="$2" + local verbose="-v" + + # check for busybox as it doesn'tz support 'ln -v' + [[ $(readlink $(which ln)) = */busybox ]] && verbose="" [[ -z ${symlink} ]] && die "No symlink given." [[ -z ${pathto} ]] && die "No path given." - ln -snf ${symlink} ${BINDIR}/${pathto} || die + ln ${verbose} -snf ${symlink} ${BINDIR}/${pathto} || die +} + +# installs systemd units +# minstallunit /path/to/unit-file {destfilename} +minstallunit() +{ + local unit + local file + + [[ -z "$1" ]] && die "No unit given" + + # if no fullpath given use file from sourcedir + if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] + then + file="${SOURCEDIR}/$(mpname)/$1" + else + file="$1" + fi + + if [[ -n "$2" ]] + then + unit="$2" + else + unit="$(basename ${file})" + fi + + # needed directory + install -d ${BINDIR}/lib/systemd/system || die + + # install our initscript + install -v -m 0644 -o root -g root ${file} ${BINDIR}/lib/systemd/system/${unit} || die +} + +# installs systemd tmp configs to /etc/tmpfiles.d +# minstalltmp /path/to/tmpdfile {destfilename} +minstalltmp() +{ + local tmpdfile + local file + + [[ -z "$1" ]] && die "No tmpd file given" + + # if no fullpath given use file from sourcedir + if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]] + then + file="${SOURCEDIR}/$(mpname)/$1" + else + file="$1" + fi + + if [[ -n "$2" ]] + then + tmpdfile="$2" + else + tmpdfile="$(basename ${file})" + fi + + # needed directory + install -d ${BINDIR}/etc/tmpfiles.d || die + + # install our tmpdfile + install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/tmpfiles./${tmpdfile} || die }