~ubuntu-on-ec2/ubuntu-on-ec2/ec2-publishing-scripts-fginther

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/sh
# vi: ts=4 noexpandtab

Usage() {
   cat <<EOF
Usage: ${0##*/} adjective
  Output the version string for a given ubuntu adjective
  Only pays attention to the first letter of the string, and as
  such will fail to function after 'zippy zebra'

  Example:
  - $ ${0##*/} xenial
    16.04
  - $ ${0##*/} ARTFUL
    17.10
EOF
}
error() { echo "$@" 1>&2; }
fail() { [ $# -eq 0 ] || error "$@"; exit 1; }


ubuntu_adj2ver() {
	case "$(echo $1 | tr "[:upper:]" "[:lower:]")" in
		warty) _RET="4.10" ;;
		hoary) _RET="5.04" ;;
		breezy) _RET="5.10" ;;
		dapper) _RET="6.06" ;;
		edgy) _RET="6.10" ;;
		feisty) _RET="7.04" ;;
		gutsy) _RET="7.10" ;;
		hardy) _RET="8.04" ;;
		intrepid) _RET="8.10" ;;
		jaunty) _RET="9.04" ;;
		karmic) _RET="9.10" ;;
		lucid) _RET="10.04" ;;
		maverick) _RET="10.10" ;;
		natty) _RET="11.04" ;;
		oneiric) _RET="11.10" ;;
		precise) _RET="12.04" ;;
		quantal) _RET="12.10" ;;
		raring) _RET="13.04" ;;
		saucy) _RET="13.10" ;;
		trusty) _RET="14.04" ;;
		utopic) _RET="14.10" ;;
		vivid) _RET="15.04" ;;
		wily) _RET="15.10" ;;
		xenial) _RET="16.04" ;;
		yakkety) _RET="16.10" ;;
		zesty) _RET="17.04" ;;
		artful) _RET="17.10" ;;
		bionic) _RET="18.04" ;;
		cosmic) _RET="18.10" ;;
		*) fail "Unknown suite $1" ;;
	esac
}

[ $# -eq 1 ] || { Usage 1>&2; fail "must give single adjective"; }
[ "$1" = "--help" -o "$1" = "-h" ] && { Usage; exit; }

ubuntu_adj2ver "$1" && echo ${_RET}