Add _hwclock which ensures that hwclock returns 1 on error, simplifying our code
This commit is contained in:
parent
2e35d2a73c
commit
666be0faa0
@ -75,6 +75,15 @@ setupopts() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# hwclock doesn't always return non zero on error
|
||||||
|
_hwclock() {
|
||||||
|
local err="$(hwclock "$@" 2>&1 >/dev/null)"
|
||||||
|
|
||||||
|
[ -z "${err}" ] && return 0
|
||||||
|
echo "${err}" >&2
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
local retval=0 errstr=""
|
local retval=0 errstr=""
|
||||||
setupopts
|
setupopts
|
||||||
@ -89,22 +98,22 @@ start() {
|
|||||||
modprobe -q rtc || modprobe -q genrtc
|
modprobe -q rtc || modprobe -q genrtc
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Since hwclock always exit's with a 0, need to check its output.
|
|
||||||
if [ -e /etc/adjtime ] && yesno ${clock_adjfile}; then
|
if [ -e /etc/adjtime ] && yesno ${clock_adjfile}; then
|
||||||
errstr="$(hwclock --adjust ${utc_cmd} 2>&1 >/dev/null)"
|
_hwclock --adjust ${utc_cmd}
|
||||||
fi
|
retval=$((${retval} + $?))
|
||||||
# If setting UTC, don't bother to run hwclock when first booting
|
|
||||||
# as that's the default
|
|
||||||
if [ "${PREVLEVEL}" != "N" -o "${utc_cmd}" != "--utc" -o -n "${clock_args}" ]; then
|
|
||||||
errstr="${errstr}$(hwclock --hctosys ${utc_cmd} ${clock_args} 2>&1 >/dev/null)"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "${errstr}" ]; then
|
# If setting UTC, don't bother to run hwclock when first booting
|
||||||
ewarn "${errstr}"
|
# as that's the default
|
||||||
retval=1
|
if [ "${PREVLEVEL}" != "N" -o \
|
||||||
|
"${utc_cmd}" != "--utc" -o \
|
||||||
|
-n "${clock_args}" ];
|
||||||
|
then
|
||||||
|
_hwclock --hctosys ${utc_cmd} ${clock_args}
|
||||||
|
retval=$((${retval} + $?))
|
||||||
fi
|
fi
|
||||||
errstr="Failed to set clock"
|
|
||||||
eend ${retval} "${errstr}" "You will need to set the clock yourself"
|
eend ${retval} "Failed to set the system clock"
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@ -120,19 +129,18 @@ stop() {
|
|||||||
[ -z "${utc_cmd}" ] && return 0
|
[ -z "${utc_cmd}" ] && return 0
|
||||||
|
|
||||||
ebegin "Setting hardware clock using the system clock" "[${utc}]"
|
ebegin "Setting hardware clock using the system clock" "[${utc}]"
|
||||||
|
|
||||||
if ! yesno "${clock_adjfile}"; then
|
if ! yesno "${clock_adjfile}"; then
|
||||||
# Some implementations don't handle adjustments
|
# Some implementations don't handle adjustments
|
||||||
if LC_ALL=C hwclock --help | grep -q "\-\-noadjfile"; then
|
if LC_ALL=C hwclock --help | grep -q "\-\-noadjfile"; then
|
||||||
utc_cmd="${utc_cmd} --noadjfile"
|
utc_cmd="${utc_cmd} --noadjfile"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
errstr="$(LC_ALL=C hwclock --systohc ${utc_cmd} ${clock_args} 2>&1 >/dev/null)"
|
|
||||||
if [ -n "${errstr}" ]; then
|
_hwclock --systohc ${utc_cmd} ${clock_args}
|
||||||
ewarn "${errstr}"
|
retval=$?
|
||||||
retval=1
|
|
||||||
fi
|
eend ${retval} "Failed to sync clocks"
|
||||||
errstr="Failed to sync clocks"
|
|
||||||
eend ${retval} "${errstr}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
save() {
|
save() {
|
||||||
|
Loading…
Reference in New Issue
Block a user