From e270a0dd44c64ebddbf6da8e8a5ff65a9bbd3191 Mon Sep 17 00:00:00 2001 From: Sebastian Schmelzer Date: Tue, 7 Sep 2010 11:15:02 +0200 Subject: installer can install stuff now :), minor changes --- tools/installer | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 117 insertions(+), 10 deletions(-) (limited to 'tools') diff --git a/tools/installer b/tools/installer index 18401110..92ece80d 100755 --- a/tools/installer +++ b/tools/installer @@ -152,7 +152,8 @@ prepare_install() -p ${INSTALL_BASE}/share/squashfs \ -p ${INSTALL_BASE}/share/templates \ -p ${INSTALL_BASE}/share/ramfstools \ - -p ${PREPARE_INSTALL_TARGET}${USR_BIN_PATH}; + -p ${PREPARE_INSTALL_TARGET}${USR_BIN_PATH} \ + -p ${PREPARE_INSTALL_TARGET}/lib; # copy license cp COPYING ${INSTALL_BASE}/ @@ -161,35 +162,134 @@ prepare_install() _install ./tools/inc/files.core base #### copy OpenSLX shared data #### - opts="--exclude=OpenSLX --exclude=*.example --strip-components 1" + opts="--exclude=OpenSLX --exclude=*.example" # --strip-components 1" _install ./tools/inc/files.share base $opts #### copy OpenSLX config data #### opts="--exclude=OpenSLX" _install ./tools/inc/files.config config $opts + # copy distro-info + tar --exclude=*.example -cp -C src/lib distro-info \ + | tar -xp -C ${PREPARE_INSTALL_TARGET}${SLX_BASE_PATH}/share + tar --exclude=prereqfiles --exclude=trusted-package-keys/* \ + --exclude=*.default --exclude=mirrors \ + -cp -C src/lib distro-info \ + | tar -xp -C ${PREPARE_INSTALL_TARGET}${SLX_CONFIG_PATH} + + ### link slx binarires ### + ln -sf ${SLX_BASE_PATH}/bin/slx* ${PREPARE_INSTALL_TARGET}${USR_BIN_PATH}/ + + ### deprecated.. ### + ln -sf ${SLX_BASE_PATH}/share/uclib-rootfs/lib/ld-uClibc.so.0 \ + ${PREPARE_INSTALL_TARGET}/lib/ld-uClibc.so.0 + echo -e " [${LightGreen}ok${NC}]" } make_install_tarball() { - echo -n " * create OpenSLX install tarball" + local COMPRESSION=$1 + [ "x$COMPRESSION" = "x" ] && \ + echo -n " * create OpenSLX install tarball" + [ "x$COMPRESSION" = "x" ] || \ + echo -n " * create OpenSLX install tarball (compressed with $COMPRESSION)" VERSIONSTRING="openslx-$(git_version)" - rm -rf $VERSIONSTRING.tar $VERSIONSTRING.tar.* cd $PREPARE_INSTALL_TARGET - tar cfj ../$VERSIONSTRING.tbz2 * + tar cf ../$VERSIONSTRING.tar * cd - 2>&1 >/dev/null + [ "x$COMPRESSION" = "x" ] || $COMPRESSION -f $VERSIONSTRING.tar echo -e " [${LightGreen}ok${NC}]" } make_source_tarball() { - echo -n " * create OpenSLX source tarball" + local COMPRESSION=$1 + [ "x$COMPRESSION" = "x" ] && \ + echo -n " * create OpenSLX source tarball" + [ "x$COMPRESSION" = "x" ] || \ + echo -n " * create OpenSLX source tarball (compressed with $COMPRESSION)" VERSIONSTRING="openslx-$(git_version)-src" - rm -rf $VERSIONSTRING.tar $VERSIONSTRING.tar.* git archive --format=tar --prefix=$VERSIONSTRING/ -o $VERSIONSTRING.tar HEAD - bzip2 $VERSIONSTRING.tar + [ "x$COMPRESSION" = "x" ] || $COMPRESSION -f $VERSIONSTRING.tar + echo -e " [${LightGreen}ok${NC}]" +} + +prepare_upgrade() +{ + echo -n " * cleanup old OpenSLX installation before upgrade" + rm -rf ${SLX_BASE_PATH} + rm -f ${USR_BIN_PATH}/slx* + echo -e " [${LightGreen}ok${NC}]" +} + +do_install() +{ + echo -n " * installing OpenSLX" + if [ ! "$(whoami)" = "root" ]; then + echo -e " [${LightRed}failed${NC}]" + echo " you need to be root" + exit 1 + fi + check_upgrade + make_install_tarball + VERSIONSTRING="openslx-$(git_version)" + check_upgrade + INSTALL_HOME=$(pwd) + cd ${SLX_BUILD_PATH}/; tar xf $INSTALL_HOME/$VERSIONSTRING.tar + cd $INSTALL_HOME +} + +uninstall() +{ + echo -n " * Uninstalling OpenSLX project files but keeping configs and stage1" + rm -rf ${SLX_BASE_PATH} + rm -rf ${SLX_PUBLIC_PATH} + rm -f ${USR_BIN_PATH}/slx* + rm -f /lib/ld-uClibc.so.0 + echo -e " [${LightGreen}ok${NC}]" + echo " left config files in ${SLX_CONFIG_PATH} untouched" + echo " left config files in ${SLX_PRIVATE_PATH} untouched" +} + +mrproper() +{ + echo -n " * Wiping all!" + rm -rf ${SLX_BASE_PATH} + rm -rf ${SLX_CONFIG_PATH} + rm -rf ${SLX_PRIVATE_PATH} + rm -rf ${SLX_PUBLIC_PATH} + rm -f ${USR_BIN_PATH}/slx* + echo -e " [${LightGreen}ok${NC}]" +} + +check_upgrade() +{ + # find out if there is an older version installed and, if so, clean that + INSTALLED_VERSION=$(slxversion 2>/dev/null) + if ! test -z "${INSTALLED_VERSION}"; then + if test -e REVISION; then + . REVISION + else + OPENSLX_VERSION_REV=$(git_version) + fi; + test "${OPENSLX_SVN_SNAPSHOT}" = "0" && + unset OPENSLX_SVN_SNAPSHOT || OPENSLX_SVN_SNAPSHOT="1" + . ./VERSIONS; + if test ${INSTALLED_VERSION} != ${OPENSLX_VERSION_STRING}; then + echo " * preparing upgrade from version (${INSTALLED_VERSION})" + prepare_upgrade; + fi; + fi +} + +clean() +{ + echo -n " * Cleanup OpenSLX source directory" + for file in ${SLX_INSTALL_LOG} openslx-*.tar.bz2; do + rm -f ${file} + done echo -e " [${LightGreen}ok${NC}]" } @@ -200,6 +300,13 @@ check_perl_dep check_perl_db check_helper_apps prepare_install -make_install_tarball -#make_source_tarballmake_install_tarball +#make_install_tarball +#make_install_tarball gzip +#make_install_tarball bzip2 +#make_install_tarball lzma +#make_source_tarball +#make_source_tarball gzip +#make_source_tarball bzip2 +#make_source_tarball lzma +do_install git_version \ No newline at end of file -- cgit v1.2.3-55-g7522