1 | #!/bin/bash |
---|
2 | if [ ! "$1" ]; then |
---|
3 | echo "Maakt een directory, geschikt voor SYN-3 netwerk boot." |
---|
4 | echo "Syntax: $0 naam " |
---|
5 | echo " thinclient: Thin client met rdesktop" |
---|
6 | echo "" |
---|
7 | echo "Zooi die je op de server moet trappen staat in out/naam-.../" |
---|
8 | echo "" |
---|
9 | echo "Betekenis van directory inhoud:" |
---|
10 | echo " list : lijst met packages die in images moeten" |
---|
11 | echo " root : Directory tree die over het rootfs heen gekopieerd word" |
---|
12 | echo " server: Extra files die men op de server moet plaatsen. (voor easy modification)" |
---|
13 | exit 1 |
---|
14 | fi |
---|
15 | DIR=$1 |
---|
16 | shift |
---|
17 | for PAR in $*; do eval "$PAR=1" &>/dev/null; done |
---|
18 | |
---|
19 | if ! which tar-1.13; then |
---|
20 | echo "Je hebt geen tar-1.13 in je path! Zie wiki." |
---|
21 | exit 1 |
---|
22 | fi |
---|
23 | |
---|
24 | |
---|
25 | #if ! mksquashfs-3.1 -version &>/dev/null; then |
---|
26 | # echo "You need mksquashfs version 3.x. Version 4 is NOT SUPPORTED!"; |
---|
27 | # exit 1 |
---|
28 | #fi |
---|
29 | |
---|
30 | |
---|
31 | if ! [ -d $DIR ]; then |
---|
32 | echo "$DIR config directory not found!" |
---|
33 | exit 1 |
---|
34 | fi |
---|
35 | |
---|
36 | |
---|
37 | ########################################### |
---|
38 | ########################################### VOORBEREIDING |
---|
39 | ########################################### |
---|
40 | |
---|
41 | |
---|
42 | BUILDROOT=`pwd` |
---|
43 | INSTALLPACKAGE=/sbin/installpkg |
---|
44 | CDROOT=/tmp/cdroot |
---|
45 | |
---|
46 | |
---|
47 | |
---|
48 | # Controleer of we als root werken, ivm het gebruik van pkgtools |
---|
49 | if [ $UID != "0" ]; then |
---|
50 | echo "You are not root, type \"su -\" and try again! :-) " |
---|
51 | exit 0 |
---|
52 | fi |
---|
53 | |
---|
54 | |
---|
55 | ########################################### |
---|
56 | ########################################### VERSIE BEPALEN |
---|
57 | ########################################### |
---|
58 | |
---|
59 | echo "* Versie nummer van deze CD bepalen... (nover om over te slaan)"; |
---|
60 | #SVNSTATUS=`svn status -v "../npl/version"` || exit 1 |
---|
61 | #BUILD=`echo "$SVNSTATUS" | cut -b14- | cut -f1 -d' '` |
---|
62 | if [ "$nover" ]; then |
---|
63 | BUILD='none' |
---|
64 | else |
---|
65 | BUILD=`svnversion ..` |
---|
66 | fi |
---|
67 | |
---|
68 | VERSION="syn3-$UPDATE_VERSION-$BUILD-`date +%d%m%Y-%H%M`" || exit 1 |
---|
69 | VERSION=`echo "$VERSION"|sed s/:/to/|sed 's/ //g'` || exit 1 |
---|
70 | |
---|
71 | echo "Versie: $VERSION"; |
---|
72 | |
---|
73 | |
---|
74 | |
---|
75 | ########################################### |
---|
76 | ########################################### LIVECD IMAGE |
---|
77 | ########################################### |
---|
78 | |
---|
79 | mkdir $CDROOT &>/dev/null |
---|
80 | |
---|
81 | OUTDIR="`pwd`/out/$DIR-$VERSION" |
---|
82 | mkdir -p $OUTDIR |
---|
83 | rm out/latest 2>/dev/null |
---|
84 | ln -s $DIR-$VERSION out/latest |
---|
85 | |
---|
86 | SQUASHROOT="/tmp/live" |
---|
87 | SQUASHIMAGE="$OUTDIR/image" |
---|
88 | |
---|
89 | |
---|
90 | rm -rf "$SQUASHROOT" &>/dev/null |
---|
91 | |
---|
92 | #kijk eerst in $CDPKG en gebruik anders svn versie |
---|
93 | for SHORTPKG in `cat $DIR/list`; do |
---|
94 | echo -n "Installeren $SHORTPKG..." |
---|
95 | TGZ=`../npl/findpkg "$SHORTPKG"` || exit 1 |
---|
96 | echo -n "$TGZ..." |
---|
97 | $INSTALLPACKAGE -root $SQUASHROOT "$TGZ" >/dev/null || exit 1 |
---|
98 | echo "OK" |
---|
99 | done |
---|
100 | |
---|
101 | |
---|
102 | echo "$SQUASHROOT configureren..." |
---|
103 | cp -a $DIR/root/* $SQUASHROOT || exit 1 |
---|
104 | chown -R 0:0 $SQUASHROOT/root || exit 1 |
---|
105 | chmod 700 $SQUASHROOT/root || exit 1 |
---|
106 | |
---|
107 | |
---|
108 | ldconfig -r $SQUASHROOT || exit 1 |
---|
109 | |
---|
110 | |
---|
111 | #stip onzinnige zooi uit squashroot |
---|
112 | find $SQUASHROOT -type d -name '*.svn' -exec rm -r "{}" \; 2>/dev/null |
---|
113 | # find $SQUASHROOT -type d -name 'man?' -exec rm -r "{}" \; 2>/dev/null |
---|
114 | # find $SQUASHROOT -type d -name 'doc' -exec rm -r "{}" \; 2>/dev/null |
---|
115 | # find $SQUASHROOT -type d -name 'include' -exec rm -r "{}" \; 2>/dev/null |
---|
116 | # find $SQUASHROOT -type d -name 'gtk-doc' -exec rm -r "{}" \; 2>/dev/null |
---|
117 | # find $SQUASHROOT -type f -name '*.ps' -exec rm -r "{}" \; 2>/dev/null |
---|
118 | |
---|
119 | |
---|
120 | #verplaats kernel + initrd naar output directory |
---|
121 | mv $SQUASHROOT/boot/initrd.gz.test $OUTDIR/initrd.gz || exit 1 |
---|
122 | mv $SQUASHROOT/boot/bzImage.test $OUTDIR/bzImage || exit 1 |
---|
123 | |
---|
124 | |
---|
125 | echo "Squash image genereren..." |
---|
126 | pushd $SQUASHROOT |
---|
127 | mksquashfs . "$SQUASHIMAGE" || exit 1; |
---|
128 | popd |
---|
129 | rm -rf "$SQUASHROOT" |
---|
130 | |
---|
131 | |
---|
132 | ####################################### |
---|
133 | ####################################### EXTRA FILES OP SERVER |
---|
134 | ####################################### |
---|
135 | |
---|
136 | cp -a $DIR/server/* $OUTDIR || exit 1 |
---|
137 | find $OUTDIR -type d -name '*.svn' -exec rm -r "{}" \; 2>/dev/null |
---|
138 | chmod 444 $OUTDIR/* |
---|
139 | |
---|
140 | echo |
---|
141 | echo |
---|
142 | echo "Server data is ready in $OUTDIR" |
---|
143 | exit 0 |
---|
144 | |
---|
145 | |
---|