/lib/rc/sh/rc-functions.sh is in openrc 0.23-1+b1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | # Copyright (c) 2007 Gentoo Foundation
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
has_addon()
{
[ -e /lib/rc/addons/"$1".sh -o -e /lib/rcscripts/addons/"$1".sh ]
}
_addon_warn()
{
eindent
ewarn "$RC_SVCNAME uses addon code which is deprecated"
ewarn "and may not be available in the future."
eoutdent
}
import_addon()
{
if [ -e /lib/rc/addons/"$1".sh ]; then
_addon_warn
. /lib/rc/addons/"$1".sh
elif [ -e /lib/rcscripts/addons/"$1".sh ]; then
_addon_warn
. /lib/rcscripts/addons/"$1".sh
else
return 1
fi
}
start_addon()
{
( import_addon "$1-start" )
}
stop_addon()
{
( import_addon "$1-stop" )
}
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
# Check OS specific flags to see if we're local or net mounted
mountinfo --quiet --netdev "$1" && return 0
mountinfo --quiet --nonetdev "$1" && return 1
# Fall back on fs types
local t=$(mountinfo --fstype "$1")
for x in $net_fs_list $extra_net_fs_list; do
[ "$x" = "$t" ] && return 0
done
return 1
}
is_union_fs()
{
[ ! -x /sbin/unionctl ] && return 1
unionctl "$1" --list >/dev/null 2>&1
}
get_bootparam()
{
local match="$1"
[ -z "$match" -o ! -r /proc/cmdline ] && return 1
set -- $(cat /proc/cmdline)
while [ -n "$1" ]; do
[ "$1" = "$match" ] && return 0
case "$1" in
gentoo=*)
local params="${1##*=}"
local IFS=, x=
for x in $params; do
[ "$x" = "$match" ] && return 0
done
;;
esac
shift
done
return 1
}
# Called from openrc-run.sh or gendepends.sh
_get_containers() {
local c
case "${RC_UNAME}" in
FreeBSD)
c="-jail"
;;
Linux)
c="-docker -lxc -openvz -rkt -systemd-nspawn -uml -vserver"
;;
esac
echo $c
}
_get_containers_remove() {
local c
for x in $(_get_containers); do
c="${c}!${x} "
done
echo $c
}
_depend() {
depend
local _rc_svcname=$(shell_var "$RC_SVCNAME") _deptype= _depends=
# Add any user defined depends
for _deptype in config:CONFIG need:NEED use:USE want:WANT \
after:AFTER before:BEFORE \
provide:PROVIDE keyword:KEYWORD; do
IFS=:
set -- $_deptype
unset IFS
eval _depends=\$rc_${_rc_svcname}_$1
[ -z "$_depends" ] && eval _depends=\$rc_$1
[ -z "$_depends" ] && eval _depends=\$RC_${_rc_svcname}_$2
[ -z "$_depends" ] && eval _depends=\$RC_$2
$1 $_depends
done
}
# Add our sbin to $PATH
case "$PATH" in
"$RC_LIBEXECDIR"/sbin|"$RC_LIBEXECDIR"/sbin:*);;
*) PATH="$RC_LIBEXECDIR/sbin:$PATH" ; export PATH ;;
esac
|