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
next 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