summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Müller2006-12-18 10:44:45 +0100
committerLars Müller2006-12-18 10:44:45 +0100
commit269aaa3780cbcf672756b19c359e941a04611194 (patch)
tree455975abf73f5c18603a03c5e0c09854bf686c4f
parentImproved "watchdog" for auto power off, if stage3 does not complete (diff)
downloadcore-269aaa3780cbcf672756b19c359e941a04611194.tar.gz
core-269aaa3780cbcf672756b19c359e941a04611194.tar.xz
core-269aaa3780cbcf672756b19c359e941a04611194.zip
Move installation of prerequired files and packages to separate
functions. git-svn-id: http://svn.openslx.org/svn/openslx/trunk@565 95ad53e4-c205-0410-b2fa-d234c58c8868
-rwxr-xr-xinstaller/slxossetup129
1 files changed, 70 insertions, 59 deletions
diff --git a/installer/slxossetup b/installer/slxossetup
index 25bfa523..0a771a36 100755
--- a/installer/slxossetup
+++ b/installer/slxossetup
@@ -45,6 +45,74 @@ for suffix in "" local ${SLX_SYSTEM_VARIANTNAME}; do
. "${SLX_SYSTEM_CONFIG_PATH}/settings${suffix:+.$suffix}"
done
+function install_prereq_file
+{
+ # Install prerequired files
+ if test -d "${SLX_SYSTEM_CONFIG_PATH}/prereqfiles"; then
+ cp -a "${SLX_SYSTEM_CONFIG_PATH}"/prereqfiles/* "${SLX_STAGE1_PATH}"
+ find "${SLX_STAGE1_PATH}" -type d -name .svn -print0 | \
+ xargs -0 rm -rf
+ fi
+ test -x "${SLX_SYSTEM_CONFIG_PATH}"/scripts/postprereq && \
+ "${SLX_SYSTEM_CONFIG_PATH}"/scripts/postprereq "${SLX_STAGE1_PATH}"
+
+ for file in ${SLX_INSTALL_FAKE_FILE}; do
+ dir="${file%/*}"
+ test -d "${SLX_STAGE1_PATH}/${dir}" || \
+ mkdir -p "${SLX_STAGE1_PATH}/${dir}"
+ touch "${SLX_STAGE1_PATH}/${file}"
+ done
+}
+
+function install_prereq_packages()
+{
+ test "${SLX_BASE_PREREQ_PACKAGES}" || \
+ return
+
+ # Download and unpack prerequired packages before any package installation
+ SLX_PACKAGE_PATH="${SLX_METADATA_PATH}/packages"
+ TMP_DIR=$( mktemp -d "${SLX_METADATA_PATH}/packages.XXXXXXXX")
+ if test $? -ne 0; then
+ echo "$0: Warning, can not create temp package download directory! "
+ echo " Using ${SLX_PACKAGE_DOWNLOAD_PATH} instead. "
+ SLX_PACKAGE_DOWNLOAD_PATH="${SLX_PACKAGE_PATH}"
+ else
+ SLX_PACKAGE_DOWNLOAD_PATH="${TMP_DIR}"
+ fi
+ test -d "${SLX_PACKAGE_DOWNLOAD_PATH}" || \
+ mkdir -p "${SLX_PACKAGE_DOWNLOAD_PATH}"
+ pushd "${SLX_PACKAGE_DOWNLOAD_PATH}" >/dev/null
+ smart --data-dir="${SLX_METADATA_PATH}" \
+ download \
+ "${SLX_BASE_PREREQ_PACKAGES}"
+ popd >/dev/null
+
+ test -d "${SLX_STAGE1_PATH}" || \
+ mkdir -p "${SLX_STAGE1_PATH}"
+ pushd "${SLX_STAGE1_PATH}" >/dev/null
+ for package in ${SLX_BASE_PREREQ_PACKAGES}; do
+ rpm2cpio ${SLX_PACKAGE_DOWNLOAD_PATH}/${package}-*.rpm | \
+ cpio -i --make-directories
+ done
+
+ # Move package from temp to package dir.
+ if test "${SLX_PACKAGE_DOWNLOAD_PATH}" != "${SLX_PACKAGE_PATH}"; then
+ test -d "${SLX_PACKAGE_PATH}" || \
+ mkdir -p "${SLX_PACKAGE_PATH}"
+ mv "${SLX_PACKAGE_DOWNLOAD_PATH}/"*.rpm "${SLX_PACKAGE_PATH}/"
+ rmdir "${SLX_PACKAGE_DOWNLOAD_PATH}"
+ fi
+
+ # Cleanup etc to prevent .rpnnew files
+ if test "${SLX_BASE_PREREQ_CLEANUP_PATH}"; then
+ for path in ${SLX_BASE_PREREQ_CLEANUP_PATH}; do
+ find "${SLX_STAGE1_PATH}/${path}" -type f -print0 | \
+ xargs -0 rm -f
+ done
+ fi
+ popd >/dev/null
+}
+
function slxossetup_smart()
{
SLX_METADATA_PATH="${SLX_PRIVATE_PATH}/metadata/${SLX_SYSTEM_NAME}"
@@ -129,66 +197,9 @@ function slxossetup_smart()
smart --data-dir="${SLX_METADATA_PATH}" \
update
- if test "${SLX_BASE_PREREQ_PACKAGES}"; then
- # Download and unpack prerequired packages before any package installation
- SLX_PACKAGE_PATH="${SLX_METADATA_PATH}/packages"
- TMP_DIR=$( mktemp -d "${SLX_METADATA_PATH}/packages.XXXXXXXX")
- if test $? -ne 0; then
- echo "$0: Warning, can not create temp package download directory! "
- echo " Using ${SLX_PACKAGE_DOWNLOAD_PATH} instead. "
- SLX_PACKAGE_DOWNLOAD_PATH="${SLX_PACKAGE_PATH}"
- else
- SLX_PACKAGE_DOWNLOAD_PATH="${TMP_DIR}"
- fi
- test -d "${SLX_PACKAGE_DOWNLOAD_PATH}" || \
- mkdir -p "${SLX_PACKAGE_DOWNLOAD_PATH}"
- pushd "${SLX_PACKAGE_DOWNLOAD_PATH}" >/dev/null
- smart --data-dir="${SLX_METADATA_PATH}" \
- download \
- "${SLX_BASE_PREREQ_PACKAGES}"
- popd >/dev/null
-
- test -d "${SLX_STAGE1_PATH}" || \
- mkdir -p "${SLX_STAGE1_PATH}"
- pushd "${SLX_STAGE1_PATH}" >/dev/null
- for package in ${SLX_BASE_PREREQ_PACKAGES}; do
- rpm2cpio ${SLX_PACKAGE_DOWNLOAD_PATH}/${package}-*.rpm | \
- cpio -i --make-directories
- done
-
- # Move package from temp to package dir.
- if test "${SLX_PACKAGE_DOWNLOAD_PATH}" != "${SLX_PACKAGE_PATH}"; then
- test -d "${SLX_PACKAGE_PATH}" || \
- mkdir -p "${SLX_PACKAGE_PATH}"
- mv "${SLX_PACKAGE_DOWNLOAD_PATH}/"*.rpm "${SLX_PACKAGE_PATH}/"
- rmdir "${SLX_PACKAGE_DOWNLOAD_PATH}"
- fi
+ install_prereq_packages
- # Cleanup etc to prevent .rpnnew files
- if test "${SLX_BASE_PREREQ_CLEANUP_PATH}"; then
- for path in ${SLX_BASE_PREREQ_CLEANUP_PATH}; do
- find "${SLX_STAGE1_PATH}/${path}" -type f -print0 | \
- xargs -0 rm -f
- done
- fi
- popd >/dev/null
- fi
-
- # Install prerequired files
- if test -d "${SLX_SYSTEM_CONFIG_PATH}/prereqfiles"; then
- cp -a "${SLX_SYSTEM_CONFIG_PATH}"/prereqfiles/* "${SLX_STAGE1_PATH}"
- find "${SLX_STAGE1_PATH}" -type d -name .svn -print0 | \
- xargs -0 rm -rf
- fi
- test -x "${SLX_SYSTEM_CONFIG_PATH}"/scripts/postprereq && \
- "${SLX_SYSTEM_CONFIG_PATH}"/scripts/postprereq "${SLX_STAGE1_PATH}"
-
- for file in ${SLX_INSTALL_FAKE_FILE}; do
- dir="${file%/*}"
- test -d "${SLX_STAGE1_PATH}/${dir}" || \
- mkdir -p "${SLX_STAGE1_PATH}/${dir}"
- touch "${SLX_STAGE1_PATH}/${file}"
- done
+ install_prereq_file
for mountpoint in ${SLX_INSTALL_BIND_MOUNT}; do
test -d "${SLX_STAGE1_PATH}/${mountpoint}" || \