blob: 2f5e1b520cf63c194473730b17c7856a9546756a (
plain) (
blame)
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
62
63
64
65
66
67
|
#!/usr/bin/env sh
set -e
export JSON_OS=
if [ -f /etc/os-release ]; then
. /etc/os-release
_os_type="${ID}"
_os_name="${NAME}"
_os_pretty_name="${PRETTY_NAME}"
_os_version="${VERSION}"
_os_version_id="${VERSION_ID}"
_os_supported=1
else
uname=$(uname | tr '[:upper:]' '[:lower:]')
case "${uname}" in
darwin)
_os_type="darwin"
_vers=$(sw_vers | awk '{print $2}')
if [ "$?" = "0" ]; then
_os_name=$(echo "${_vers}" | tail -n +1 | head -n 1)
_os_version=$(echo "${_vers}" | tail -n +2 | head -n 1)
_os_pretty_name="${_os_name} ${_os_version}"
_os_version_id="${_os_version}"
_os_supported=1
else
>&2 echo "cloyster/os_detect.sh: error: unknown darwin system: '${uname}'"
fi
;;
*)
_os_type="${uname}"
>&2 echo "cloyster/os_detect.sh: error: unknown operating system: '${uname}'"
esac
fi
_m=$(uname -m)
case "${_m}" in
x86_64) _os_machine=amd64;;
i*86) _os_machine=x86;;
*)
_os_machine="${_m}"
;;
esac
JSON_OS=$(jo -d. \
"os.supported@${_os_supported}" \
"os.type=${_os_type}" \
"os.name=${_os_name}" \
"os.pretty_name=${_os_pretty_name}" \
"os.version=${_os_version}" \
"os.version_id=${_os_version_id}" \
"os.machine=${_os_machine}")
# os_get KEY|jq [JQ_QUERY]
os_get() {
_key="${1}"
if [ -z "${1}" ]; then
_key=".os"
elif [ "${1}" = "jq" ] && [ -n "${2}" ]; then
_key="${2}"
else
_key=".os.${_key}"
fi
value="$(echo ${JSON_OS} | jq -r "${_key}")"
if [ "${value}" = "null" ]; then value=; fi
echo "${value}"
}
|