~fginther/vmbuilder/jenkins_kvm-add-git-for-maas

38 by Ben Howard
Test changes for bzr based Azure builder
1
#!/bin/bash
2
short_opts="h"
809.1.1 by Robert C Jennings
maas_config: Missing change for getops from git migration
3
long_opts="distro:,stream:,maas-git-repo:,out:,template:,serial:,local:,base-name:,out_d:"
38 by Ben Howard
Test changes for bzr based Azure builder
4
getopt_out=$(getopt --name "${0##*/}" \
5
    --options "${short_opts}" --long "${long_opts}" -- "$@") &&
6
    eval set -- "${getopt_out}" || { echo "BAD INVOCATION!"; usage; exit 1; }
7
8
usage() {
9
    cat <<EOM
10
${0##/} - Populated values in build temple.
11
12
    Required:
13
    --distro        Distro code name, i.e. precise
14
    --template      Template file
40 by Ben Howard
Introducing MAAS images
15
    --stream        Stream, i.e. daily, release
16
    --base-name     The name of the file to work on
38 by Ben Howard
Test changes for bzr based Azure builder
17
    --serial        The build serial
18
    --out           The output file
141 by Ben Howard
Finalization for MAAS Image building
19
    --out_d         Where to stuff the output files
38 by Ben Howard
Test changes for bzr based Azure builder
20
21
    Optional:
808.1.2 by Robert C Jennings
maas-images: remove bzr lp:maas-images entirely
22
    --maas-git-repo   git repo for maas image code
38 by Ben Howard
Test changes for bzr based Azure builder
23
EOM
24
}
25
26
27
fail() { echo "${@}" 2>&1; exit 1;}
28
40 by Ben Howard
Introducing MAAS images
29
serial="${serial:-$(date +%Y%m%d)}"
808.1.2 by Robert C Jennings
maas-images: remove bzr lp:maas-images entirely
30
maas_git_repo="${maas_git_repo:-lp:~maas-images-maintainers/maas-images}"
40 by Ben Howard
Introducing MAAS images
31
template_f="${PWD}/img-maas.tmpl"
38 by Ben Howard
Test changes for bzr based Azure builder
32
33
while [ $# -ne 0 ]; do
34
  cur=${1}; next=${2};
35
  case "$cur" in
36
    --distro)                   distro=$2;  shift;;
40 by Ben Howard
Introducing MAAS images
37
    --stream)                   stream=$2;  shift;;
38
    --local)                    local_d=$2; shift;;
808.1.2 by Robert C Jennings
maas-images: remove bzr lp:maas-images entirely
39
    --maas-git-repo)            maas_git_repo=$2; shift;;
40 by Ben Howard
Introducing MAAS images
40
    --base-name)                base_name=$2; shift;;
41
    --template)                 template_f=$2; shift;;
38 by Ben Howard
Test changes for bzr based Azure builder
42
    --out)                      out_f=$2; shift;;
141 by Ben Howard
Finalization for MAAS Image building
43
    --out_d)                    out_d=$2; shift;;
38 by Ben Howard
Test changes for bzr based Azure builder
44
    --) shift; break;;
45
  esac
46
  shift;
47
done
48
49
fail_usage() { fail "Must define $@"; }
50
51
[ -z "${distro}" ] && fail_usage "--distro"
40 by Ben Howard
Introducing MAAS images
52
[ -z "${stream}" ] && fail_usage "--stream"
53
[ -z "${local_d}" ] && fail_usage "--local"
38 by Ben Howard
Test changes for bzr based Azure builder
54
[ -z "${out_f}" ] && fail_usage "--out"
141 by Ben Howard
Finalization for MAAS Image building
55
[ -z "${out_d}" ] && fail_usage "--out_d"
40 by Ben Howard
Introducing MAAS images
56
[ -z "${base_name}" ] && fail_usage "--base-name"
38 by Ben Howard
Test changes for bzr based Azure builder
57
248 by Scott Moser
saucy does not have armhf images, make maas images build
58
case "$distro" in
358 by Ben Howard
Mark
59
   trusty) arches="${ARCH_TYPE:-i386 amd64 armhf}";
314 by Ben Howard
Use libnss-myhostname for Vagrant images, rather than mucking with /etc/hosts.
60
           [[ "$(uname -m)" =~ ppc64 ]] && arches="ppc64el";;
358 by Ben Howard
Mark
61
   *) arches="${ARCH_TYPE:-i386 amd64 armhf}";;
248 by Scott Moser
saucy does not have armhf images, make maas images build
62
esac
199 by Ben Howard
Restrict raring to Intel Architectures for MAAS
63
38 by Ben Howard
Test changes for bzr based Azure builder
64
sed -e "s,%d,${distro},g" \
40 by Ben Howard
Introducing MAAS images
65
    -e "s,%S,${stream},g" \
808.1.2 by Robert C Jennings
maas-images: remove bzr lp:maas-images entirely
66
    -e "s,%M,${maas_git_repo},g" \
40 by Ben Howard
Introducing MAAS images
67
    -e "s,%D,${local_d},g" \
68
    -e "s,%B,${base_name},g" \
141 by Ben Howard
Finalization for MAAS Image building
69
    -e "s,%s,${serial},g" \
70
    -e "s,%O,${out_d},g" \
199 by Ben Howard
Restrict raring to Intel Architectures for MAAS
71
    -e "s,%A,${arches},g" \
38 by Ben Howard
Test changes for bzr based Azure builder
72
    ${template_f} > ${out_f} ||
73
        fail "Unable to write template file"
74
75
exit 0