23d806ca24
The cache directory should be created via mkdir -p instead of mkdir. This makes sure all parent directories are created. Also, we now display an error message explaining that we were unable to create the cache directory if creation fails.
50 lines
1.1 KiB
Plaintext
50 lines
1.1 KiB
Plaintext
#!@SBINDIR@/openrc-run
|
|
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
|
|
# Released under the 2-clause BSD license.
|
|
|
|
description="Saves the caches OpenRC uses to non volatile storage"
|
|
|
|
start()
|
|
{
|
|
if [ -e "$RC_SVCDIR"/clock-skewed ]; then
|
|
ewarn "WARNING: clock skew detected!"
|
|
if ! yesno "${RC_GOINGDOWN}"; then
|
|
eerror "Not saving deptree cache"
|
|
return 1
|
|
fi
|
|
fi
|
|
if ! checkpath -W "$RC_LIBEXECDIR"; then
|
|
ewarn "WARNING: ${RC_LIBEXECDIR} is not writable!"
|
|
if ! yesno "${RC_GOINGDOWN}"; then
|
|
ewarn "Unable to save deptree cache"
|
|
return 1
|
|
fi
|
|
return 0
|
|
fi
|
|
ebegin "Saving dependency cache"
|
|
local rc=
|
|
if [ ! -d "$RC_LIBEXECDIR"/cache ]; then
|
|
rm -rf "$RC_LIBEXECDIR"/cache
|
|
if ! mkdir -p "$RC_LIBEXECDIR"/cache; then
|
|
rc=$?
|
|
if yesno "${RC_GOINGDOWN}"; then
|
|
rc=0
|
|
fi
|
|
eend $rc "Unable to create $RC_SVCDIR/cache"
|
|
return $rc
|
|
fi
|
|
fi
|
|
local save=
|
|
for x in deptree depconfig shutdowntime softlevel nettree rc.log; do
|
|
[ -e "$RC_SVCDIR/$x" ] && save="$save $RC_SVCDIR/$x"
|
|
done
|
|
if [ -n "$save" ]; then
|
|
cp -p $save "$RC_LIBEXECDIR"/cache 2>/dev/null
|
|
fi
|
|
rc=$?
|
|
if yesno "${RC_GOINGDOWN}"; then
|
|
rc=0
|
|
fi
|
|
eend $rc
|
|
}
|