diff options
author | Michael Neves | 2013-03-19 16:58:50 +0100 |
---|---|---|
committer | Michael Neves | 2013-03-19 16:58:50 +0100 |
commit | c4a8ee3b2c2287e13ed4ee84b07ea4d5bf23e7fb (patch) | |
tree | 6f06a755f8e2f9e96e28c79c94926bfae6f4904f | |
parent | fix stage3.1 build script (diff) | |
download | tm-scripts-c4a8ee3b2c2287e13ed4ee84b07ea4d5bf23e7fb.tar.gz tm-scripts-c4a8ee3b2c2287e13ed4ee84b07ea4d5bf23e7fb.tar.xz tm-scripts-c4a8ee3b2c2287e13ed4ee84b07ea4d5bf23e7fb.zip |
setup_core is now export_target
-rwxr-xr-x | server/export_build | 91 | ||||
-rwxr-xr-x | server/export_target | 108 |
2 files changed, 199 insertions, 0 deletions
diff --git a/server/export_build b/server/export_build new file mode 100755 index 00000000..d3a3e2a6 --- /dev/null +++ b/server/export_build @@ -0,0 +1,91 @@ +#!/bin/bash +# Copyright (c) 2012 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# +# Server side script to generate stage3.1,2 initial ramfses for OpenSLX Linux +# stateless clients +############################################################################# + +#where we are +MODE_DIR="${ROOT_DIR}/server" + +#files generated by this script land in boot +SERVER_BOOT_DIR="${MODE_DIR}/boot" + +#builds from remote server +SERVER_BUILD_DIR="${MODE_DIR}/remote_builds" +REMOTE_BUILD_DIR="${ROOT_DIR}/remote/builds" + +#stage32 sqfs directory +STAGE32_SQFS_DIR="${SERVER_BOOT_DIR}/stage32_sqfs/mnt" + +#Default values if -b was not supplied in mltk +DEFAULT_STAGE32="stage32-default" +DEFAULT_STAGE31="stage31-default" +DEFAULT_ADDONS="addons-default" + +# initial checks +initial_checks() { + + local TOOL_STR="$TOOL_STR initial_checks:" + + #check for required tools + for BIN in squashfs-tools + do + local TEST=$(which ${BIN}) + [ -z "${TEST}" ] && pinfo "Installing ${BIN}..." && apt-get install ${BIN} + done + + #setup link to remote build directory, later this directory will be rsynced or exported to this server... + if [ ! -d "${SERVER_BUILD_DIR}" ]; then + [ ! -d "${REMOTE_BUILD_DIR}" ] && perror "remote 'builds' directory not foud, exiting." + ln -s "${REMOTE_BUILD_DIR}" "${SERVER_BUILD_DIR}" + fi + + [ ! -d "${SERVER_BOOT_DIR}" ] && mkdir -p "${SERVER_BOOT_DIR}" +} + +generate_stage32() { + local TOOL_STR="${TOOL_STR} generate_stage32:" + [ ! -d "${STAGE32_SQFS_DIR}" ] && mkdir -p "${STAGE32_SQFS_DIR}" + [ -e "${STAGE32_SQFS_DIR}/${BUILD}.sqfs" ] && rm "${STAGE32_SQFS_DIR}/${BUILD}.sqfs" + pinfo "Writing ${BUILD}.sqfs to '${STAGE32_SQFS_DIR}/${BUILD}.sqfs'" + mksquashfs "${SERVER_BUILD_DIR}/${BUILD}" "${STAGE32_SQFS_DIR}/${BUILD}.sqfs" -comp xz -b 1M -no-recovery >&6 || perror "mksquashfs failed ($?)." + generate_initramfs "initramfs-${BUILD}" "${MODULE_DIR}/openslx" +} + +generate_stage31() { + initial_checks + generate_rootfs + generate_squashfs + + if [ ! -e ${MODULE_DIR}/kernel ]; then + local TOOL_STR="$TOOL_STR copy_kernel:" + pinfo "Copying Kernel $(uname -r) to ${MODULE_DIR}/kernel" + cp "/boot/vmlinuz-$(uname -r)" "${MODULE_DIR}/kernel" || perror "Cannot copy kernel from '/boot/vmlinuz-$(uname -r)' to '${MODULE_DIR}/kernel'" + else + pinfo "Not copying kernel from system, as it already exists." + fi +} + +clean_core() { + local TOOL_STR="$TOOL_STR clean_core:" + pinfo "Cleaning '${STAGE31_DIR}'..." + [ -d ${STAGE31_DIR} ] && { rm -rf ${STAGE31_DIR} || perror "rm -rf failed."; } + pinfo "Cleaning '${MODULE_DIR}/kernel'..." + [ -e ${MODULE_DIR}/kernel ] && { rm ${MODULE_DIR}/kernel || perror "rm failed."; } + pinfo "Cleaning '${MODULE_DIR}/initramfs'..." + [ -e ${MODULE_DIR}/initramfs ] && { rm ${MODULE_DIR}/initramfs || perror "rm failed."; } + pinfo "Cleaning '${MODULE_DIR}/openslx'..." + [ -d ${MODULE_DIR}/openslx ] && { rm -rf ${MODULE_DIR}/openslx || perror "rm failed."; } + pinfo "Cleaning '${MODULE_DIR}/initramfs2'..." + [ -d ${MODULE_DIR}/initramfs2 ] && { rm ${MODULE_DIR}/initramfs2 || perror "rm failed."; } +} + diff --git a/server/export_target b/server/export_target new file mode 100755 index 00000000..cb55a55f --- /dev/null +++ b/server/export_target @@ -0,0 +1,108 @@ +#!/bin/bash +# Copyright (c) 2012 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# +# Server side script to generate stage3.1,2 initial ramfses for OpenSLX Linux +# stateless clients +############################################################################# + +#where we are +MODE_DIR="${ROOT_DIR}/server" + +#files generated by this script land in boot +SERVER_BOOT_DIR="${MODE_DIR}/boot" + +#builds from remote server +SERVER_BUILD_DIR="${MODE_DIR}/remote_builds" +REMOTE_BUILD_DIR="${ROOT_DIR}/remote/builds" + +#stage32 sqfs directory +STAGE32_SQFS_DIR="${SERVER_BOOT_DIR}/stage32_sqfs/mnt" + +# initial checks +initial_checks() { + + local TOOL_STR="$TOOL_STR initial_checks:" + + #check for required tools + for BIN in squashfs-tools + do + local TEST=$(which ${BIN}) + [ -z "${TEST}" ] && pinfo "Installing ${BIN}..." && apt-get install ${BIN} + done + + #setup link to remote build directory, later this directory will be rsynced or exported to this server... + if [ ! -d "${SERVER_BUILD_DIR}" ]; then + [ ! -d "${REMOTE_BUILD_DIR}" ] && perror "remote 'builds' directory not foud, exiting." + ln -s "${REMOTE_BUILD_DIR}" "${SERVER_BUILD_DIR}" + fi + + [ ! -d "${SERVER_BOOT_DIR}" ] && mkdir -p "${SERVER_BOOT_DIR}" +} + +generate_stage32() { + local TOOL_STR="${TOOL_STR} generate_stage32:" + [ ! -d "${STAGE32_SQFS_DIR}" ] && mkdir -p "${STAGE32_SQFS_DIR}" + [ -e "${STAGE32_SQFS_DIR}/${TARGET}.sqfs" ] && rm "${STAGE32_SQFS_DIR}/${TARGET}.sqfs" + pinfo "Writing '${TARGET}.sqfs' to '${STAGE32_SQFS_DIR}/${TARGET}.sqfs'" + mksquashfs "${SERVER_BUILD_DIR}/${TARGET}" "${STAGE32_SQFS_DIR}/${TARGET}.sqfs" -comp xz -b 1M -no-recovery >&6 || perror "mksquashfs failed ($?)." + generate_initramfs "${SERVER_BOOT_DIR}/stage32_sqfs" "./mnt/${TARGET}.sqfs" "${SERVER_BOOT_DIR}/initramfs-${TARGET}" +} + +generate_stage31() { + local TOOL_STR="${TOOL_STR} generate_stage31:" + pinfo "Writing 'initramfs-${BUILD}' to '${SERVER_BOOT_DIR}'" + generate_initramfs "${SERVER_BUILD_DIR}/${TARGET}" "." "${SERVER_BOOT_DIR}/initramfs-${TARGET}" +} + +generate_addons() { + local TOOL_STR="${TOOL_STR} generate_addons:" + pinfo "Writing '${TARGET}.sqfs' to '${SERVER_BOOT_DIR}/${TARGET}.sqfs'" + [ -e "${SERVER_BOOT_DIR}/${TARGET}.sqfs" ] && rm "${SERVER_BOOT_DIR}/${TARGET}.sqfs" + mksquashfs "${SERVER_BUILD_DIR}/${TARGET}" "${SERVER_BOOT_DIR}/${TARGET}.sqfs" -comp xz -b 1M -no-recovery >&6 || perror "mksquashfs failed ($?)." +} + +export_target() { + +initial_checks + +TARGET=$1 +[ -d ${SERVER_BUILD_DIR}/${TARGET} ] || perror "Given target directory does not exist: ${SERVER_BUILD_DIR}/${TARGET}" + +case "$2" in + stage31) + generate_stage31 + ;; + stage32) + generate_stage32 + ;; + addons) + generate_addons + ;; +esac + +} + +clean_target() { + TARGET=$1 + + local TOOL_STR="$TOOL_STR clean_target" + pinfo "Cleaning '${SERVER_BUILD_DIR}/${TARGET}'..." + [ -d "${SERVER_BUILD_DIR}/${TARGET}" ] && { rm -rf "${SERVER_BUILD_DIR}/${TARGET}" || perror "rm -rf failed."; } + pinfo "Cleaning '${SERVER_BOOT_DIR}/kernel'..." + [ -e "${SERVER_BOOT_DIR}/kernel" ] && { rm "${SERVER_BOOT_DIR}/kernel" || perror "rm failed."; } + pinfo "Cleaning '${SERVER_BOOT_DIR}/initramfs-${TARGET}'..." + [ -e "${SERVER_BOOT_DIR}/initramfs-${TARGET}" ] && { rm "${SERVER_BOOT_DIR}/initramfs-${TARGET}" || perror "rm failed."; } + pinfo "Cleaning '${SERVER_BOOT_DIR}/${TARGET}.sqfs'..." + [ -e "${SERVER_BOOT_DIR}/${TARGET}.sqfs" ] && { rm "${SERVER_BOOT_DIR}/${TARGET}.sqfs" || perror "rm failed."; } + pinfo "Cleaning '${SERVER_BOOT_DIR}/stage32_dqfs/mnt/${TARGET}.sqfs'..." + [ -e "${SERVER_BOOT_DIR}/stage32_dqfs/mnt/${TARGET}.sqfs" ] && { rm "${SERVER_BOOT_DIR}/stage32_dqfs/mnt/${TARGET}.sqfs" || perror "rm failed."; } +} + |