97 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
# Copyright 2007 Gentoo Foundation
 | 
						|
# Copyright 2007 Roy Marples
 | 
						|
# All rights reserved
 | 
						|
 | 
						|
# Redistribution and use in source and binary forms, with or without
 | 
						|
# modification, are permitted provided that the following conditions
 | 
						|
# are met:
 | 
						|
# 1. Redistributions of source code must retain the above copyright
 | 
						|
#    notice, this list of conditions and the following disclaimer.
 | 
						|
# 2. Redistributions in binary form must reproduce the above copyright
 | 
						|
#    notice, this list of conditions and the following disclaimer in the
 | 
						|
#    documentation and/or other materials provided with the distribution.
 | 
						|
#
 | 
						|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
						|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
						|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
						|
# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
						|
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
						|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
						|
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
						|
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
						|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
						|
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
						|
# SUCH DAMAGE.
 | 
						|
 | 
						|
has_addon() {
 | 
						|
	[ -e "${RC_LIBDIR}/addons/$1.sh" ] || [ -e /lib/rcscripts/addons/"$1".sh ]
 | 
						|
}
 | 
						|
 | 
						|
import_addon() {
 | 
						|
	if [ -e "${RC_LIBDIR}/addons/$1.sh" ]; then
 | 
						|
		. "${RC_LIBDIR}/addons/$1.sh"
 | 
						|
	elif [ -e /lib/rcscripts/addons/"$1".sh ]; then
 | 
						|
		. /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 cifs coda davfs fuse gfs 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}; 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
 | 
						|
		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
 | 
						|
}
 | 
						|
 | 
						|
# Add our sbin to $PATH
 | 
						|
case "${PATH}" in
 | 
						|
	/lib/rc/sbin|/lib/rc/sbin:*);;
 | 
						|
	*) export PATH="/lib/rc/sbin:${PATH}";;
 | 
						|
esac
 | 
						|
 | 
						|
# vim: set ts=4 :
 |