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