X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=cirros-testvm%2Fsrc-cirros%2Fbin%2Fsystem-setup;fp=cirros-testvm%2Fsrc-cirros%2Fbin%2Fsystem-setup;h=c82fee4197b911ba4bada2db1bb877f96cc167e3;hb=b0a0f15dfaa205161a7fcb20cf1b8cd4948c2ef3;hp=0000000000000000000000000000000000000000;hpb=c6ac3cd55ee2da956195eee393b0882105dfad4e;p=packages%2Ftrusty%2Fcirros-testvm.git diff --git a/cirros-testvm/src-cirros/bin/system-setup b/cirros-testvm/src-cirros/bin/system-setup new file mode 100755 index 0000000..c82fee4 --- /dev/null +++ b/cirros-testvm/src-cirros/bin/system-setup @@ -0,0 +1,94 @@ +#!/bin/bash + +_APT_UPDATED=false +CIRROS_BRANCH="lp:cirros" +CIRROS_D="" +DEPS=( + bc + bison + build-essential + bzr + flex + gettext + libncurses5-dev + qemu-kvm + quilt + rsync + texinfo + unzip + wget +) + +error() { echo "$@" 1>&2; } +fail() { [ $# -eq 0 ] || error "$@"; exit 2; } + +apt_get() { + local ret="" + if [ "$1" != "update" ] && ! $_APT_UPDATED; then + error "updating apt" + apt_get update >/dev/null || { + ret=$?; + error "failed to update apt [$ret]"; + return $ret; + } + _APT_UPDATED=true + fi + sudo DEBIAN_FRONTEND=noninteractive apt-get --quiet \ + --assume-yes "$@" &1 | awk ' + $0 ~ /[Nn]o packages/ { + sub("[.]$","",$NF); + pkgs[n]=$NF; + n=n+1; + } + $2 == "" { + pkgs[n]=$1; + n=n+1; + }; + END { for(p in pkgs) {printf("%s ",pkgs[p])}; printf("\n"); }' n=0 +} + +apt_install() { + local needed + needed=$(filter_installed_packages "$@") + [ -z "$needed" ] && return 0 + error "installing: $needed" + apt_get install "$@" +} + +dist_id=$(lsb_release --short --id) || fail "failed: lsb_release --short --id" +case "$dist_id" in + *buntu) :;; + *) fail "do not know how to setup $dist_id";; +esac + +ver=$(lsb_release --short --release) +[[ "$ver" < "14.04" ]] && + fail "building not supported prior to 14.04" + +me=$(readlink -f "$0") +myd=$(dirname "$me") + +if [ -f "$myd/../fixup-fs" ]; then + CIRROS_D=$(cd "$myd/.." && pwd) +elif [ -f "$PWD/cirros/fixup-fs" ]; then + CIRROS_D="$PWD/cirros" +fi + +apt_install "${DEPS[@]}" + +if [ -z "$CIRROS_D" ]; then + error "getting $CIRROS_BRANCH to $PWD/cirros" + bzr branch "$CIRROS_BRANCH" cirros || + fail "failed branch $CIRROS_BRANCH" + CIRROS_D="$PWD/cirros" +fi + +error "set up functional to $CIRROS_D" + +# vi: ts=4 expandtab