7
7
CONFD=0
8
8
DRACUT=0
9
9
SIZE=" 5G"
10
- DISTRO=" void"
11
10
POOL_PREFIX=" ztest"
12
11
12
+ DISTROS=()
13
+
13
14
# Dictionary for random pool names, provided by words-en
14
15
dictfile=" /usr/share/dict/words"
15
16
@@ -30,7 +31,7 @@ Usage: $0 [options]
30
31
-r Use a randomized pool name
31
32
-x Use an existing pool image
32
33
-k Populate host SSH host and authorized keys
33
- -o Specify another distribution
34
+ -o Distribution to install (may specify more than one)
34
35
[ void, void-musl, arch, debian, ubuntu ]
35
36
EOF
36
37
}
@@ -84,7 +85,7 @@ while getopts "heycgdaiD:s:o:lp:rxk" opt; do
84
85
SIZE=" ${OPTARG} "
85
86
;;
86
87
o)
87
- DISTRO= " ${OPTARG} "
88
+ DISTROS+=( " ${OPTARG} " )
88
89
;;
89
90
l)
90
91
LEGACY_POOL=1
@@ -109,9 +110,13 @@ while getopts "heycgdaiD:s:o:lp:rxk" opt; do
109
110
esac
110
111
done
111
112
113
+ if [ " ${# DISTROS[@]} " -lt 1 ]; then
114
+ DISTROS=( " void" )
115
+ fi
116
+
112
117
# Assign a default dest directory if one was not provided
113
118
if [ -z " ${TESTDIR} " ]; then
114
- TESTDIR=" ./test.${DISTRO } "
119
+ TESTDIR=" ./test.${DISTROS[0] } "
115
120
fi
116
121
117
122
TESTDIR=" $( realpath " ${TESTDIR} " ) " || exit 1
@@ -211,17 +216,22 @@ if ((INCLUDE_KEYS)); then
211
216
fi
212
217
fi
213
218
214
- # Create an image
219
+ # Create image(s) for each specified distro
215
220
if (( 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
227
237
fi
0 commit comments