Revision d1068153 devel/build_chroot
b/devel/build_chroot | ||
---|---|---|
1 | 1 |
#!/bin/bash |
2 | 2 |
#Configuration |
3 |
: ${DATA_DIR=`dirname $0`/data} |
|
4 |
: ${ARCH=amd64} |
|
5 |
: ${DIST_RELEASE=squeeze} |
|
3 |
: ${ARCH:=amd64} |
|
4 |
: ${DIST_RELEASE:=squeeze} |
|
6 | 5 |
: ${CONF_DIR:=/etc/schroot/chroot.d} |
7 | 6 |
: ${CHROOT_DIR:=/srv/chroot} |
8 | 7 |
: ${ALTERNATIVE_EDITOR:=/usr/bin/vim.basic} |
8 |
# The value of DATA_DIR is read as well from the environment. |
|
9 | 9 |
|
10 | 10 |
#Automatically generated variables |
11 | 11 |
CHROOTNAME=$DIST_RELEASE-$ARCH |
... | ... | |
17 | 17 |
USER=`whoami` |
18 | 18 |
COMP_FILENAME=$CHROOTNAME.tar.gz |
19 | 19 |
COMP_FILEPATH=$ROOT/$COMP_FILENAME |
20 |
TEMP_DATA_DIR=`mktemp -d` |
|
21 |
ACTUAL_DATA_DIR=$DATA_DIR |
|
22 |
ACTUAL_DATA_DIR=${ACTUAL_DATA_DIR:-$TEMP_DATA_DIR} |
|
20 | 23 |
|
21 | 24 |
#Runnability checks |
22 | 25 |
if [ $USER != 'root' ] |
... | ... | |
34 | 37 |
exit |
35 | 38 |
fi |
36 | 39 |
|
37 |
if [ ! -d $DATA_DIR ] |
|
40 |
#Create configuration dir and files if they do not exist |
|
41 |
if [ ! -d $ACTUAL_DATA_DIR ] |
|
38 | 42 |
then |
43 |
mkdir $ACTUAL_DATA_DIR |
|
39 | 44 |
echo "The data directory" |
40 |
echo " $DATA_DIR" |
|
41 |
echo "does not exist." |
|
42 |
echo "Please, set the DATA_DIR environment variable so that it points to the" |
|
43 |
echo "data directory." |
|
44 |
exit |
|
45 |
echo " $ACTUAL_DATA_DIR" |
|
46 |
echo "has been created." |
|
47 |
fi |
|
48 |
|
|
49 |
if [ ! -f $ACTUAL_DATA_DIR/final.schroot.conf.in ] |
|
50 |
then |
|
51 |
cat <<END >$ACTUAL_DATA_DIR/final.schroot.conf.in |
|
52 |
[${CHROOTNAME}] |
|
53 |
description=Debian ${DIST_RELEASE} ${ARCH} |
|
54 |
groups=src |
|
55 |
source-root-groups=root |
|
56 |
type=file |
|
57 |
file=${CHROOT_DIR}/${COMP_FILENAME} |
|
58 |
END |
|
59 |
echo "The file" |
|
60 |
echo " $ACTUAL_DATA_DIR/final.schroot.conf.in" |
|
61 |
echo "has been created with default configurations." |
|
62 |
fi |
|
63 |
|
|
64 |
if [ ! -f $ACTUAL_DATA_DIR/temp.schroot.conf.in ] |
|
65 |
then |
|
66 |
cat <<END >$ACTUAL_DATA_DIR/temp.schroot.conf.in |
|
67 |
[${CHNAME}] |
|
68 |
description=Debian ${DIST_RELEASE} ${ARCH} |
|
69 |
directory=${CHDIR} |
|
70 |
groups=src |
|
71 |
users=root |
|
72 |
type=directory |
|
73 |
END |
|
74 |
echo "The file" |
|
75 |
echo " $ACTUAL_DATA_DIR/temp.schroot.conf.in" |
|
76 |
echo "has been created with default configurations." |
|
45 | 77 |
fi |
46 | 78 |
|
79 |
#Stop on errors |
|
47 | 80 |
set -e |
48 | 81 |
|
49 | 82 |
#Cleanup |
... | ... | |
65 | 98 |
-e "s/\${DIST_RELEASE}/$DIST_RELEASE/"' |
66 | 99 |
|
67 | 100 |
#Generate chroot configurations |
68 |
cat $DATA_DIR/temp.schroot.conf.in | subst_variables > $TEMP_CHROOT_CONF |
|
69 |
cat $DATA_DIR/final.schroot.conf.in | subst_variables > $FINAL_CHROOT_CONF |
|
101 |
cat $ACTUAL_DATA_DIR/temp.schroot.conf.in | subst_variables > $TEMP_CHROOT_CONF
|
|
102 |
cat $ACTUAL_DATA_DIR/final.schroot.conf.in | subst_variables > $FINAL_CHROOT_CONF
|
|
70 | 103 |
|
71 | 104 |
#Install the base system |
72 | 105 |
debootstrap --arch $ARCH $DIST_RELEASE $CHDIR |
... | ... | |
183 | 216 |
|
184 | 217 |
rm -rf $CHDIR |
185 | 218 |
rm -f $TEMP_CHROOT_CONF |
219 |
rm -rf $TEMP_DATA_DIR |
Also available in: Unified diff