summaryrefslogtreecommitdiffstats
path: root/server/export_target
diff options
context:
space:
mode:
authorMichael Neves2013-03-19 16:58:50 +0100
committerMichael Neves2013-03-19 16:58:50 +0100
commitc4a8ee3b2c2287e13ed4ee84b07ea4d5bf23e7fb (patch)
tree6f06a755f8e2f9e96e28c79c94926bfae6f4904f /server/export_target
parentfix stage3.1 build script (diff)
downloadtm-scripts-c4a8ee3b2c2287e13ed4ee84b07ea4d5bf23e7fb.tar.gz
tm-scripts-c4a8ee3b2c2287e13ed4ee84b07ea4d5bf23e7fb.tar.xz
tm-scripts-c4a8ee3b2c2287e13ed4ee84b07ea4d5bf23e7fb.zip
setup_core is now export_target
Diffstat (limited to 'server/export_target')
-rwxr-xr-xserver/export_target108
1 files changed, 108 insertions, 0 deletions
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."; }
+}
+