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