summaryrefslogtreecommitdiffstats
path: root/functions.sh
diff options
context:
space:
mode:
Diffstat (limited to 'functions.sh')
-rw-r--r--functions.sh96
1 files changed, 96 insertions, 0 deletions
diff --git a/functions.sh b/functions.sh
new file mode 100644
index 0000000..90f7b5e
--- /dev/null
+++ b/functions.sh
@@ -0,0 +1,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
+}