77CONFD=0
88DRACUT=0
99SIZE=" 5G"
10- DISTRO=" void"
1110POOL_PREFIX=" ztest"
1211
12+ DISTROS=()
13+
1314# Dictionary for random pool names, provided by words-en
1415dictfile=" /usr/share/dict/words"
1516
@@ -30,7 +31,7 @@ Usage: $0 [options]
3031 -r Use a randomized pool name
3132 -x Use an existing pool image
3233 -k Populate host SSH host and authorized keys
33- -o Specify another distribution
34+ -o Distribution to install (may specify more than one)
3435 [ void, void-musl, arch, debian, ubuntu ]
3536EOF
3637}
@@ -84,7 +85,7 @@ while getopts "heycgdaiD:s:o:lp:rxk" opt; do
8485 SIZE=" ${OPTARG} "
8586 ;;
8687 o)
87- DISTRO= " ${OPTARG} "
88+ DISTROS+=( " ${OPTARG} " )
8889 ;;
8990 l)
9091 LEGACY_POOL=1
@@ -109,9 +110,13 @@ while getopts "heycgdaiD:s:o:lp:rxk" opt; do
109110 esac
110111done
111112
113+ if [ " ${# DISTROS[@]} " -lt 1 ]; then
114+ DISTROS=( " void" )
115+ fi
116+
112117# Assign a default dest directory if one was not provided
113118if [ -z " ${TESTDIR} " ]; then
114- TESTDIR=" ./test.${DISTRO } "
119+ TESTDIR=" ./test.${DISTROS[0] } "
115120fi
116121
117122TESTDIR=" $( realpath " ${TESTDIR} " ) " || exit 1
@@ -211,17 +216,22 @@ if ((INCLUDE_KEYS)); then
211216 fi
212217fi
213218
214- # Create an image
219+ # Create image(s) for each specified distro
215220if (( IMAGE)) ; then
216- IMAGE_SCRIPT=" ./helpers/image-${DISTRO} .sh"
217- if [ ! -x " ${IMAGE_SCRIPT} " ]; then
218- IMAGE_SCRIPT=" ./helpers/image.sh"
219- fi
220-
221- sudo unshare --fork --pid --mount env \
222- ENCRYPT=" ${ENCRYPT} " \
223- LEGACY_POOL=" ${LEGACY_POOL} " \
224- EXISTING_POOL=" ${EXISTING_POOL} " \
225- PATH=" /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" \
226- " ${IMAGE_SCRIPT} " " ${TESTDIR} " " ${SIZE} " " ${DISTRO} " " ${POOL_NAME} "
221+ for DISTRO in " ${DISTROS[@]} " ; do
222+ IMAGE_SCRIPT=" ./helpers/image-${DISTRO} .sh"
223+ if [ ! -x " ${IMAGE_SCRIPT} " ]; then
224+ IMAGE_SCRIPT=" ./helpers/image.sh"
225+ fi
226+
227+ sudo unshare --fork --pid --mount env \
228+ ENCRYPT=" ${ENCRYPT} " \
229+ LEGACY_POOL=" ${LEGACY_POOL} " \
230+ EXISTING_POOL=" ${EXISTING_POOL} " \
231+ PATH=" /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" \
232+ " ${IMAGE_SCRIPT} " " ${TESTDIR} " " ${SIZE} " " ${DISTRO} " " ${POOL_NAME} "
233+
234+ # All subsequent distros use the same pool
235+ EXISTING_POOL=1
236+ done
227237fi
0 commit comments