blob: 59f0eb6bd653e507c8f89f0a143d465b14c82657 (
plain)
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
|
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# void try(command)
#
# Try to execute 'command', if it fails, drop to a shell.
#
try() {
local errstr
local retval=0
if [ -c /dev/null ] ; then
errstr=$(eval $* 2>&1 >/dev/null)
else
errstr=$(eval $* 2>&1)
fi
retval=$?
if [ ${retval} -ne 0 ] ; then
#splash "critical" &
eend 1
eerror "The \"$*\" command failed with error:"
eerror " ${errstr#*: }"
echo
eerror "Since this is a critical task, startup cannot continue."
echo
single_user
fi
return ${retval}
}
# bool check_statedir(dir)
#
# Check that 'dir' exists, if not, drop to a shell.
#
check_statedir() {
[ -z "$1" ] && return 0
if [ ! -d "$1" ] ; then
if ! 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
fi
return 0
}
# vim: set ts=4 :
|