summaryrefslogtreecommitdiffstats
path: root/server/build_core
diff options
context:
space:
mode:
authorJonathan Bauer2012-12-20 15:33:34 +0100
committerJonathan Bauer2012-12-20 15:33:34 +0100
commitf6dad6269ab3228ead055291b846d2a9edb04564 (patch)
tree30096a5fbd037fe4f9f0a0ef2b68d04317883c8e /server/build_core
parentstatic unit files for dbus, cleanup (diff)
downloadtm-scripts-f6dad6269ab3228ead055291b846d2a9edb04564.tar.gz
tm-scripts-f6dad6269ab3228ead055291b846d2a9edb04564.tar.xz
tm-scripts-f6dad6269ab3228ead055291b846d2a9edb04564.zip
mltk basic script :)
Diffstat (limited to 'server/build_core')
-rwxr-xr-xserver/build_core143
1 files changed, 78 insertions, 65 deletions
diff --git a/server/build_core b/server/build_core
index d0441c69..4e615520 100755
--- a/server/build_core
+++ b/server/build_core
@@ -18,71 +18,84 @@
# in the future the prefix should be set via slxsettings ...
-ROOT_DIR=$(dirname $(readlink -f $0))
-SELF=$(readlink -f $0)
+MODULE_DIR=${ROOT_DIR}/server
-STAGE31_STATIC_DIR=${ROOT_DIR}/../data/stage3.1
-STAGE31_DIR=${ROOT_DIR}/stage3.1
-STAGE32_DIR=${ROOT_DIR}/../remote/stage3.2
+STAGE31_STATIC_DIR=${ROOT_DIR}/data/stage3.1
+STAGE31_DIR=${MODULE_DIR}/stage3.1
+STAGE32_DIR=${ROOT_DIR}/remote/stage3.2
# initial checks
-if [ "x$(whoami)" != "xroot" ]; then
- echo "ERROR: You need to have root rights to install packages."
- exit 1
-fi
-
-if [ ! -d ${STAGE32_DIR} ];
-then
- echo "No stage3.2 directory found. Please run setup-tools.sh first."
- exit 1
-fi
-
-if [ ! -e ${STAGE32_DIR}/openslx/bin/busybox ];
-then
- echo "Busybox not found, run 'setup-tools.sh busybox' first."
- exit 1
-fi
-
-# shouldn't squashfs-tools be automatically installed as we need them nevertheless!?
-# what if it is already on the machine? faster to check with which than the apt-get check?
-if [ -z $(which mksquashfs) ];
-then
- echo "mksquashfs not found, please install squashfs-tools first."
- exit 1
-fi
-
-# produce stage3.1
-[ ! -d ${STAGE31_DIR} ] && mkdir -p ${STAGE31_DIR}
-
-# create basic directory structure
-mkdir -p ${STAGE31_DIR}/{bin,dev,proc,run,lib,etc,mnt,sys}
-
-# copy device files from running system
-cp -a /dev/{console,kmsg,mem,null,tty,tty0,tty1,tty9,urandom,zero} \
- ${STAGE31_DIR}/dev
-
-# copy busybox, its libs and static data to stage3.1
-cp -r ${STAGE32_DIR}/openslx/* ${STAGE31_STATIC_DIR}/* ${STAGE31_DIR}
-
-# fetch the libraries needed for busybox
-BASICLIBS=""
-for i in $(ldd ${STAGE31_DIR}/bin/busybox);
-do
- if [ $(echo $i | grep '^/' | grep -c ld) -eq 1 \
- -o $(echo $i | grep '^/' | grep -c libc.so) -eq 1 ];
- then
- echo $i
- BASICLIBS="$BASICLIBS $i $(readlink -f "$i")"
- fi
-done
-tar cpv $BASICLIBS | tar xpv -C ${STAGE31_DIR} &>/dev/null
-
-# finalize the initramfs target
-[ ! -d ${STAGE32_DIR} ] && echo "No stage3.2 directory found. Please run setup_tools first." && exit 1
-[ -e ${STAGE31_DIR}/mnt/openslx.sqfs ] && rm ${STAGE31_DIR}/mnt/openslx.sqfs
-
-mksquashfs ${STAGE32_DIR} ${STAGE31_DIR}/mnt/openslx.sqfs -comp xz -b 1M -no-recovery 2>/dev/null
-
-cd ${STAGE31_DIR}
-find . | cpio --format="newc" --create | gzip -9 > ${ROOT_DIR}/initramfs
-cd - &>/dev/null
+initial_checks() {
+ if [ ! -d ${STAGE32_DIR} ];
+ then
+ echo "No stage3.2 directory found. Please run setup_tools first."
+ exit 1
+ fi
+
+ if [ ! -e ${STAGE32_DIR}/openslx/bin/busybox ];
+ then
+ echo "Busybox not found, run 'setup_tools busybox' first."
+ exit 1
+ fi
+ # shouldn't squashfs-tools be automatically installed as we need them nevertheless!?
+ # what if it is already on the machine? faster to check with which than the apt-get check?
+ if [ -z $(which mksquashfs) ];
+ then
+ echo "mksquashfs not found, please install squashfs-tools first."
+ exit 1
+ fi
+}
+
+generate_initramfs() {
+
+ # produce stage3.1
+ [ ! -d ${STAGE31_DIR} ] && mkdir -p ${STAGE31_DIR}
+
+ # create basic directory structure
+ mkdir -p ${STAGE31_DIR}/{bin,dev,proc,run,lib,etc,mnt,sys}
+
+ # copy device files from running system
+ cp -a /dev/{console,kmsg,mem,null,tty,tty0,tty1,tty9,urandom,zero} \
+ ${STAGE31_DIR}/dev
+
+ # copy busybox, its libs and static data to stage3.1
+ cp -r ${STAGE32_DIR}/openslx/* ${STAGE31_STATIC_DIR}/* ${STAGE31_DIR}
+
+ # fetch the libraries needed for busybox
+ BASICLIBS=""
+ for i in $(ldd ${STAGE31_DIR}/bin/busybox);
+ do
+ if [ $(echo $i | grep '^/' | grep -c ld) -eq 1 \
+ -o $(echo $i | grep '^/' | grep -c libc.so) -eq 1 ];
+ then
+ echo $i
+ BASICLIBS="$BASICLIBS $i $(readlink -f "$i")"
+ fi
+ done
+ tar cpv $BASICLIBS | tar xpv -C ${STAGE31_DIR} &>/dev/null
+
+}
+
+generate_squashfs() {
+
+ # finalize the initramfs target
+ [ ! -d ${STAGE32_DIR} ] && echo "No stage3.2 directory found. Please run setup_tools first." && exit 1
+ [ -e ${STAGE31_DIR}/mnt/openslx.sqfs ] && rm ${STAGE31_DIR}/mnt/openslx.sqfs
+
+ mksquashfs ${STAGE32_DIR} ${STAGE31_DIR}/mnt/openslx.sqfs -comp xz -b 1M -no-recovery 2>/dev/null
+
+ cd ${STAGE31_DIR}
+ find . | cpio --format="newc" --create | gzip -9 > ${MODULE_DIR}/initramfs
+ cd - &>/dev/null
+}
+
+generate_stage31() {
+ initial_checks
+ generate_initramfs
+ generate_squashfs
+}
+
+clean_core() {
+ [ -d ${STAGE31_DIR} ] && rm -rf ${STAGE31_DIR}
+ [ -e ${MODULE_DIR}/initramfs ] && rm ${MODULE_DIR}/initramfs
+}