public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Robin H. Johnson" <robbat2@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/netifrc:master commit in: sh/
Date: Fri,  9 Jan 2015 17:17:49 +0000 (UTC)	[thread overview]
Message-ID: <1420815748.a3444e9abf16ecb6145e95a891433b3a79800170.robbat2@OpenRC> (raw)

commit:     a3444e9abf16ecb6145e95a891433b3a79800170
Author:     Rabi Shanker Guha <guha.rabishankar <AT> gmail <DOT> com>
AuthorDate: Fri Jan  9 15:02:28 2015 +0000
Commit:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
CommitDate: Fri Jan  9 15:02:28 2015 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/netifrc.git;a=commit;h=a3444e9a

Compatibility layer for multiple init systems

---
 sh/functions.sh | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 126 insertions(+)

diff --git a/sh/functions.sh b/sh/functions.sh
new file mode 100644
index 0000000..368bb73
--- /dev/null
+++ b/sh/functions.sh
@@ -0,0 +1,126 @@
+# Compatibility layer for netifrc to work with multiple init
+# systems.
+
+# First check whether e* commands are present in the environment
+# XXX [[-n RC_GOT_FUNCTIONS]] ??
+if [ -n "$(command -v ebegin >/dev/null 2>&1)" ]; then
+	:
+
+# Then check for the presence of functions.sh
+elif [ -f /lib/gentoo/functions.sh ]; then
+	. /lib/gentoo/functions.sh
+
+else
+	echo "/lib/gentoo/functions.sh not found. Exiting"
+	exit -1
+fi
+
+# runscript functions
+if [ -z "$(command -v service_set_value >/dev/null 2>&1)" ]; then
+
+	# OpenRC functions used in depend
+	after() {
+		:
+	}
+	before() {
+		:
+	}
+	program() {
+		:
+	}
+	need() {
+		:
+	}
+
+	shell_var() {
+		local output=$1 sanitized_arg=
+		shift 1
+		for arg; do
+			sanitized_arg="${arg//[^a-zA-Z0-9_]/_}"
+			output="$output $arg"
+		done
+		echo "$output"
+	}
+
+	net_fs_list="afs ceph cifs coda davfs fuse fuse.sshfs gfs glusterfs lustre ncpfs nfs nfs4 ocfs2 shfs smbfs"
+	is_net_fs()
+	{
+		[ -z "$1" ] && return 1
+
+		local fs=$(mount | grep " on $1 " | cut -f 5 -d ' ')
+		for x in $fs; do
+			for y in $net_fs_list; do
+				[ "$x" = "$y" ] && return 0
+			done
+		done
+		return 1
+	}
+
+	service_set_value() {
+		local OPTION="$1" VALUE="$2"
+		if [ -z "$OPTION" ]; then
+			eerror "service_set_value requires parameter KEY"
+			return
+		fi
+		local file="$OPTIONSDIR/${OPTION}"
+		echo "$VALUE" > $file
+	}
+	service_get_value() {
+		local OPTION="$1"
+		if [ -z "$OPTION" ]; then
+			eerror "service_get_value requires parameter KEY"
+			return
+		fi
+		local file="$OPTIONSDIR/${OPTION}"
+		cat $file 2>/dev/null
+	}
+	STATEFILE="${STATEDIR}/state"
+	# Internal Function
+	# Stores the state of netifrc in ${SVCDIR}/${SVCNAME}/state file
+	_mark_service() {
+		local state=$1
+		echo $state > $STATEFILE
+	}
+	#Internal Function
+	# Checks whether the state of netifrc is same as $1
+	_service_state() {
+		state=$(cat $STATEFILE 2>/dev/null)
+		if [ state = $1 ]; then
+			return 1
+		fi
+		return 0
+	}
+
+	mark_service_started() {
+		_mark_service started
+	}
+	mark_service_inactive() {
+		_mark_service inactive
+	}
+	mark_service_stopped() {
+		_mark_service stopped
+	}
+	service_started() {
+		_service_state started
+		return $?
+	}
+	service_inactive() {
+		_service_state inactive
+		return $?
+	}
+fi
+
+# Extracts the interface for the current invocation
+get_interface() {
+	case $INIT in
+		openrc)
+			printf ${RC_SVCNAME#*.};;
+		systemd)
+			printf ${RC_IFACE};;
+		*)
+			eerror "Init system not supported. Aborting"
+			exit -1;;
+	esac
+}
+
+# vim: ts=4 sw=4 noexpandtab


             reply	other threads:[~2015-01-09 17:17 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-09 17:17 Robin H. Johnson [this message]
  -- strict thread matches above, loose matches on Subject: below --
2015-01-09 17:17 [gentoo-commits] proj/netifrc:master commit in: sh/ Robin H. Johnson
2015-01-16 18:16 Robin H. Johnson
2015-01-16 18:16 Robin H. Johnson
2015-01-22 23:01 Robin H. Johnson
2016-07-19 19:59 Robin H. Johnson
2016-10-24 22:26 Robin H. Johnson
2019-04-21  4:17 Robin H. Johnson
2019-04-21  5:34 Robin H. Johnson
2021-03-25  0:45 Patrick McLean

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1420815748.a3444e9abf16ecb6145e95a891433b3a79800170.robbat2@OpenRC \
    --to=robbat2@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox