diff options
| author | Dirk | 2013-12-12 11:18:18 +0100 |
|---|---|---|
| committer | Dirk | 2013-12-12 11:18:18 +0100 |
| commit | b614bbbe854cd12d94074c04c70dee049b9bdf4f (patch) | |
| tree | 9f75eedb2bc7d007918fa156dc5e1b21172fe6ee /helper | |
| parent | Removing unneeded (deprecated) hwinfo stuff ... (diff) | |
| parent | [rootfs-stage32] add macvtap module to wanted kernel module list (diff) | |
| download | tm-scripts-b614bbbe854cd12d94074c04c70dee049b9bdf4f.tar.gz tm-scripts-b614bbbe854cd12d94074c04c70dee049b9bdf4f.tar.xz tm-scripts-b614bbbe854cd12d94074c04c70dee049b9bdf4f.zip | |
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
...
Diffstat (limited to 'helper')
| -rw-r--r-- | helper/fileutil.inc | 97 |
1 files changed, 58 insertions, 39 deletions
diff --git a/helper/fileutil.inc b/helper/fileutil.inc index 027f5404..aae654bc 100644 --- a/helper/fileutil.inc +++ b/helper/fileutil.inc @@ -91,7 +91,7 @@ install_packages() { for PKG in ${PACKAGE_LIST}; do # check if installed if [ "x$PACKET_HANDLER" == "xdpkg" ]; then - dpkg -L ${PKG} > /dev/null 2>&1 + dpkg -l ${PKG} > /dev/null 2>&1 elif [ "x$PACKET_HANDLER" == "xrpm" ]; then rpm -ql ${PKG} > /dev/null 2>&1 else @@ -100,53 +100,72 @@ install_packages() { local LRET=$? if [ "x$LRET" == "x0" ]; then - # package installed - pdebug "$PKG installed!" + # check if it is completly installed, + # not just leftover configuration files + local INSTALL_STATUS=$(dpkg -l $PKG | grep $PKG | cut -c1-2) + if [[ $INSTALL_STATUS != "ii" ]]; then + pinfo "$PKG not installed!" + install_package $PKG + else + # package installed + pdebug "$PKG installed!" + fi else # package not installed pdebug "$PKG not installed!" - if [ "x$PACKET_MANAGER" == "xapt" ]; then - apt-get install -y ${PKG} - local IRET=$? - if [ "x$IRET" == "x0" ]; then - # $PGK was installed successfully - INSTALLED_PACKAGES+="$PKG " - else - # PKG was not installed - # TODO error handling - perror "install_packages: apt-get failed with '$IRET' for package '$PKG'" - fi - elif [ "x$PACKET_MANAGER" == "xzypper" ]; then - zypper --no-refresh --non-interactive install ${PKG} - local IRET=$? - if [ "x$IRET" == "x0" ]; then - # $PGK was installed successfully - INSTALLED_PACKAGES+="$PKG " - else - # PKG was not installed - # TODO error handling - perror "install_packages: zypper failed with '$IRET' for package '$PKG'" - fi - elif [ "x$PACKET_MANAGER" == "xyum" ]; then - yum --assumeyes install ${PKG} - local IRET=$? - if [ "x$IRET" == "x0" ]; then - # $PGK was installed successfully - INSTALLED_PACKAGES+="$PKG " - else - # PKG was not installed - # TODO error handling - perror "install_packages: yum failed with '$IRET' for package '$PKG'" - fi - else - perror "No packet manager determined, this should not happen!" - fi + install_package $PKG fi done [ ! -z "$INSTALLED_PACKAGES" ] && pinfo "Packages installed: ${INSTALLED_PACKAGES}" } # +# install individual package depending on package manager +# +install_package() { + if [ "$#" -ne 1 ]; then + perror "Only call install_package with one argument!" + fi + + if [ "x$PACKET_MANAGER" == "xapt" ]; then + apt-get install -y ${PKG} + local IRET=$? + if [ "x$IRET" == "x0" ]; then + # $PGK was installed successfully + INSTALLED_PACKAGES+="$PKG " + else + # PKG was not installed + # TODO error handling + perror "install_packages: apt-get failed with '$IRET' for package '$PKG'" + fi + elif [ "x$PACKET_MANAGER" == "xzypper" ]; then + zypper --no-refresh --non-interactive install ${PKG} + local IRET=$? + if [ "x$IRET" == "x0" ]; then + # $PGK was installed successfully + INSTALLED_PACKAGES+="$PKG " + else + # PKG was not installed + # TODO error handling + perror "install_packages: zypper failed with '$IRET' for package '$PKG'" + fi + elif [ "x$PACKET_MANAGER" == "xyum" ]; then + yum --assumeyes install ${PKG} + local IRET=$? + if [ "x$IRET" == "x0" ]; then + # $PGK was installed successfully + INSTALLED_PACKAGES+="$PKG " + else + # PKG was not installed + # TODO error handling + perror "install_packages: yum failed with '$IRET' for package '$PKG'" + fi + else + perror "No packet manager determined, this should not happen!" + fi +} + +# # copies static data files from <MODULE>/data/ to <TARGET_BUILD_DIR> # copy_static_data() { |
