From 3f7e039851705293be394b8fc5939f71c07fab0b Mon Sep 17 00:00:00 2001 From: Antonio Terceiro Date: Sat, 28 Oct 2017 09:20:35 -0200 Subject: [PATCH] lxc-debian: don't hardcode valid releases This avoids the dance of updating the list of valid releases every time Debian makes a new release. It also fixes the following bug: even though lxc-debian will default to creating containers of the latest stable by querying the archive, it won't allow you to explicitly request `stable` because the current list of valid releases don't include it. Last, but not least, avoid hitting the mirror in the case the desired release is one of the ones we know will always be there, i.e. stable, testing, sid, and unstable. Signed-off-by: Antonio Terceiro --- templates/lxc-debian.in | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/templates/lxc-debian.in b/templates/lxc-debian.in index 95099e1e9..20c267910 100644 --- a/templates/lxc-debian.in +++ b/templates/lxc-debian.in @@ -587,12 +587,13 @@ if [ "$(id -u)" != "0" ]; then exit 1 fi -current_release=`wget ${MIRROR}/dists/stable/Release -O - 2> /dev/null | head |awk '/^Codename: (.*)$/ { print $2; }'` -release=${release:-${current_release}} -valid_releases=('wheezy' 'jessie' 'stretch' 'buster' 'testing' 'sid' 'unstable') -if [[ ! "${valid_releases[*]}" =~ (^|[^[:alpha:]])$release([^[:alpha:]]|$) ]]; then - echo "Invalid release ${release}, valid ones are: ${valid_releases[*]}" - exit 1 +release=${release:-stable} +permanent_releases=('stable' 'testing' 'sid' 'unstable') +if [[ ! "${permanent_releases[*]}" =~ (^|[^[:alpha:]])$release([^[:alpha:]]|$) ]]; then + if ! wget "${MIRROR}/dists/${release}/Release" -O /dev/null 2> /dev/null; then + echo "Invalid release ${release} (not found in mirror)" + exit 1 + fi fi # detect rootfs -- 2.47.2