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
61
|
#!/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" ;;
disco) _RET="19.04" ;;
*) 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}
|