# Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # bool check_statedir(dir) # # Check that 'dir' exists, if not, drop to a shell. # check_statedir() { [[ -z $1 ]] && return 0 if [[ ! -d $1 ]] && ! mkdir -p "$1" &>/dev/null ; then splash "critical" & echo eerror "For Gentoo to function properly, \"$1\" needs to exist." if [[ ${RC_FORCE_AUTO} == "yes" ]] ; then eerror "Attempting to create \"$1\" for you ..." mount -o remount,rw / mkdir -p "$1" fi if [[ ! -d $1 ]] ; then eerror "Please mount your root partition read/write, and execute:" echo eerror " # mkdir -p $1" echo; echo single_user fi fi return 0 } # void start_critical_service() # # Start critical services needed for bootup # start_critical_service() { ( local retval= local service=$1 # Needed for some addons like dm-crypt that starts in critical services local myservice=$1 source "/etc/init.d/${service}" retval=$? if [[ ${retval} -ne 0 ]]; then eerror "Failed to source /etc/init.d/${service}" return "${retval}" fi local conf="$(add_suffix /etc/conf.d/${service})" [[ -e ${conf} ]] && source "${conf}" conf="$(add_suffix /etc/rc.conf)" [[ -e ${conf} ]] && source "${conf}" start retval=$? [[ ${retval} -ne 0 ]] && eerror "Failed to start /etc/init.d/${service}" return "${retval}" ) } # vim:ts=4