#!/bin/bash if [ ! "$1" ]; then echo "Maakt een directory, geschikt voor SYN-3 netwerk boot." echo "Syntax: $0 naam " echo " thinclient: Thin client met rdesktop" echo "" echo "Zooi die je op de server moet trappen staat in out/naam-.../" echo "" echo "Betekenis van directory inhoud:" echo " list : lijst met packages die in images moeten" echo " root : Directory tree die over het rootfs heen gekopieerd word" echo " server: Extra files die men op de server moet plaatsen. (voor easy modification)" exit 1 fi DIR=$1 shift for PAR in $*; do eval "$PAR=1" &>/dev/null; done if ! which tar-1.13; then echo "Je hebt geen tar-1.13 in je path! Zie wiki." exit 1 fi #if ! mksquashfs-3.1 -version &>/dev/null; then # echo "You need mksquashfs version 3.x. Version 4 is NOT SUPPORTED!"; # exit 1 #fi if ! [ -d $DIR ]; then echo "$DIR config directory not found!" exit 1 fi ########################################### ########################################### VOORBEREIDING ########################################### BUILDROOT=`pwd` INSTALLPACKAGE=/sbin/installpkg CDROOT=/tmp/cdroot # Controleer of we als root werken, ivm het gebruik van pkgtools if [ $UID != "0" ]; then echo "You are not root, type \"su -\" and try again! :-) " exit 0 fi ########################################### ########################################### VERSIE BEPALEN ########################################### echo "* Versie nummer van deze CD bepalen... (nover om over te slaan)"; #SVNSTATUS=`svn status -v "../npl/version"` || exit 1 #BUILD=`echo "$SVNSTATUS" | cut -b14- | cut -f1 -d' '` if [ "$nover" ]; then BUILD='none' else BUILD=`svnversion ..` fi VERSION="syn3-$UPDATE_VERSION-$BUILD-`date +%d%m%Y-%H%M`" || exit 1 VERSION=`echo "$VERSION"|sed s/:/to/|sed 's/ //g'` || exit 1 echo "Versie: $VERSION"; ########################################### ########################################### LIVECD IMAGE ########################################### mkdir $CDROOT &>/dev/null OUTDIR="`pwd`/out/$DIR-$VERSION" mkdir -p $OUTDIR rm out/latest 2>/dev/null ln -s $DIR-$VERSION out/latest SQUASHROOT="/tmp/live" SQUASHIMAGE="$OUTDIR/image" rm -rf "$SQUASHROOT" &>/dev/null #kijk eerst in $CDPKG en gebruik anders svn versie for SHORTPKG in `cat $DIR/list`; do echo -n "Installeren $SHORTPKG..." TGZ=`../npl/findpkg "$SHORTPKG"` || exit 1 echo -n "$TGZ..." $INSTALLPACKAGE -root $SQUASHROOT "$TGZ" >/dev/null || exit 1 echo "OK" done echo "$SQUASHROOT configureren..." cp -a $DIR/root/* $SQUASHROOT || exit 1 chown -R 0:0 $SQUASHROOT/root || exit 1 chmod 700 $SQUASHROOT/root || exit 1 ldconfig -r $SQUASHROOT || exit 1 #stip onzinnige zooi uit squashroot find $SQUASHROOT -type d -name '*.svn' -exec rm -r "{}" \; 2>/dev/null # find $SQUASHROOT -type d -name 'man?' -exec rm -r "{}" \; 2>/dev/null # find $SQUASHROOT -type d -name 'doc' -exec rm -r "{}" \; 2>/dev/null # find $SQUASHROOT -type d -name 'include' -exec rm -r "{}" \; 2>/dev/null # find $SQUASHROOT -type d -name 'gtk-doc' -exec rm -r "{}" \; 2>/dev/null # find $SQUASHROOT -type f -name '*.ps' -exec rm -r "{}" \; 2>/dev/null #verplaats kernel + initrd naar output directory mv $SQUASHROOT/boot/initrd.gz.test $OUTDIR/initrd.gz || exit 1 mv $SQUASHROOT/boot/bzImage.test $OUTDIR/bzImage || exit 1 echo "Squash image genereren..." pushd $SQUASHROOT mksquashfs . "$SQUASHIMAGE" || exit 1; popd rm -rf "$SQUASHROOT" ####################################### ####################################### EXTRA FILES OP SERVER ####################################### cp -a $DIR/server/* $OUTDIR || exit 1 find $OUTDIR -type d -name '*.svn' -exec rm -r "{}" \; 2>/dev/null chmod 444 $OUTDIR/* echo echo echo "Server data is ready in $OUTDIR" exit 0