blob: 1ef1fbf9cdcc7da6230f53b2184da9d12a318da8 (
plain)
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
68
69
|
# logging
msg() { printf "$@\n" >&2 ;}
info() { msg "** $@" ;}
error() { msg "!! $@" ;}
die() { error "$@" ;exit 1;}
exists(){ type "$1" >/dev/null 2>/dev/null; }
is_root(){
test $(id -u) -eq 0
}
defer(){
#close enough
trapstr="$1;${trapstr:-exit}"
trap "$trapstr" INT TERM EXIT KILL
}
esudo(){
# becomes root with sudo powers
# unless nosudo env is set
if test "${nosudo-false}" != true && ! is_root; then
echo "we're going sudo..." >&2
exec sudo -E "$0" "$@"
exit 23 # go to hell
fi
}
get_hostname(){
# finds the current hostname
# if ENV HOSTN is set echo $HOSTN
# We try the following:
# $HOSTN
# $HOSTNAME
# hostname
# uci system.hostname
# /etc/hostname
# if everything fails, it returns 1 and prints 'unknown'
if [ -n "${HOSTN:-}" ] ; then printf "${HOSTN:-}"
elif [ -n "${HOSTNAME:-}" ] ;then printf "$HOSTNAME"
elif exists hostname ; then printf "$(hostname)"
elif exists uci ; then printf "$(uci get system.@system[0].hostname)"
elif [ -e /etc/hostname ] ;then printf "$(cat /etc/hostname)"
else printf "unknown"; return 1
fi
return 0
}
line_to_dot(){
while read line; do printf .; done;
}
get_os()
{
# TODO: find all the release files
#if grep -q 'Linux' /etc/*release 2>/dev/null || grep -qe 'Linux' /etc/issue 2>/dev/null; then
if grep -q 'Linux' /etc/lsb-release 2>/dev/null || grep -q 'Linux' /etc/issue 2>/dev/null; then
echo 'linux'
elif exists getprop ; then
echo 'android'
elif test -e /etc/openwrt_release; then
echo 'openwrt'
elif uname -s | grep -qi 'darwin'; then
echo 'osx'
else
warn "Cannot determine your operating system, falling back to Linux"
echo 'linux'
fi
}
|