Add in the mess from the original symbiosisware version.
[distorted-chroot] / mess / maint / mkchrootconf
1 #! /bin/sh -e
2
3 unset vg snapopt defdist defarch mirror scratchbase
4 badp=nil
5 while getopts "a:d:l:v:" opt; do
6 case $opt in
7 a) defarch=$OPTARG ;;
8 d) defdist=$OPTARG ;;
9 l) snapopt=$OPTARG ;;
10 v) vg=$OPTARG ;;
11 *) badp=t ;;
12 esac
13 done
14 shift $(( $OPTIND - 1 ))
15 case $# in 0) badp=t ;; esac
16 case $badp in
17 t)
18 cat >&2 <<EOF
19 usage: $0 [-a ARCH] [-d DIST] [-l SNAPOPT] [-v VG]
20 DIST-ARCH ...
21 EOF
22 exit 1
23 ;;
24 esac
25 for arg in "$@"; do
26 case $arg in *-*-*) echo >&2 "$0: bad chroot name \`$arg'"; exit 1 ;; esac
27 done
28 if [ ! -d /dev/$vg/ ]; then echo >&2 "$0: no volume group \`$vg'"; exit 1; fi
29
30 : ${vg=vg-$(hostname)} ${snapopt=-L4g}
31 : ${defdist=$(apt-config dump |
32 sed -n '/^APT::Default-Release "\(.*\)";$/s//\1/p')}
33 : ${defarch=$(dpkg-architecture -qDEB_HOST_ARCH_CPU)}
34
35 for i in $(set | sed -n '/^nickmap_/s/=.*//p'); do unset $i; done
36 while read canon aliases; do
37 for alias in $aliases; do
38 eval "nickmap_$canon=\"\${nickmap_$canon+\$nickmap_$canon }$alias\""
39 done
40 done <<EOF
41 jessie oldstable
42 stretch stable
43 buster testing
44 sid unstable
45 EOF
46
47 cat <<EOF
48 ### -*-conf-*- GENERATED by mkchrootconf
49 EOF
50 for arg in "$@"; do
51 dist=${arg%-*} arch=${arg#*-}
52 eval "nick=\$nickmap_$dist"
53
54 cat <<EOF
55
56 [$arg]
57 EOF
58
59 unset alias
60 for n in $nick; do alias=${alias+$alias,}$n-$arch; done
61 case $arch in
62 $defarch) for n in $dist $nick; do alias=${alias+$alias,}$n; done ;;
63 esac
64 case $dist in
65 $defdist) alias=${alias+$alias,}$arch ;;
66 esac
67 case ${alias+t} in
68 t)
69 cat <<EOF
70 aliases=$alias
71 EOF
72 ;;
73 esac
74
75 case $arch in
76 i386)
77 cat <<EOF
78 personality=linux32
79 EOF
80 ;;
81 amd64)
82 cat <<EOF
83 personality=linux
84 EOF
85 ;;
86 esac
87
88 cat <<EOF
89 type=lvm-snapshot
90 description=Debian $dist/$arch autobuilder
91 device=/dev/$vg/$dist-$arch
92 lvm-snapshot-options=$snapopt
93 mount-options=-onosuid,data=writeback,barrier=0,commit=3600,noatime
94 location=/fs
95 groups=root,sbuild
96 root-groups=root,sbuild
97 source-groups=root
98 source-root-groups=root
99 profile=sbuild
100 EOF
101 done