summaryrefslogtreecommitdiffstats
path: root/functions.sh
blob: 90f7b5ed672e4383f09f38aad67a1603b5b3bea0 (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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96

RC_GOT_FUNCTIONS="yes"

# load user settings
[ -r /etc/conf.d/rc ] && . /etc/conf.d/rc



svclib="/lib/rcscripts"
svcdir="${svcdir:-/var/lib/init.d}"

# void import_addon(char *Addon)
import_addon() {
	local addon="$svclib/addons/$1"
	[ -r "$addon" ] && . "$addon"
}

echon () {
	if [ -z "$ECHON" ]; then
		# Determine how to "echo" without newline: "echo -n"
		# or "echo ...\c"
		if [ "X`echo -n`" = "X-n" ]; then
			ECHON=echo
			NNL="\c"
			# "
		else
			ECHON="echo -n"
			NNL=""
		fi
	fi
	$ECHON "$*$NNL"
}


eerror() {
	echo $* >&2
}

einfo() {
	echo $* >&2
}

einfon() {
	echon $* >&2
}

ewarn() {
	echo $* >&2
}

ebegin() {
	echon " * $*: "
}

eend() {
	local msg
	if [ "$1" = 0 ] || [ $# -lt 1 ] ; then
		msg="ok."
	else
		shift
		msg=" failed. $*"
	fi
	echo "$msg"
}

eindent() {
	true
}

start_addon() {
	(import_addon "$1-start.sh")
	return 0
}

stop_addon() {
	(import_addon "$1-stop.sh")
	return 0
}

save_options() {
	local myopts="$1"
	mkdir -p -m 0755 "$svcdir/options/$SVCNAME"
	shift
	echo "$*" > "$svcdir/options/$SVCNAME/$myopts"
}

get_options() {
	local svc="$SVCNAME"
	[ "$2" ] && svc="$2"
	cat "$svcdir/options/$svc/$1" 2>/dev/null
}

die() {
	eerror "$1"
	exit 1
}