CloverBootloader/CloverPackage/CloverV2/rcScripts/Library/Application Support/Clover/CloverDaemon

143 lines
3.8 KiB
Plaintext
Raw Normal View History

#!/bin/bash
#
# rc.local startup script for CLOVER
#
# this script run executable scripts in rc.boot.d folder having .local
# extension
#
# Initial - fassl, slice, STLVNUB
# Edited - apianti 2013-01-13
# - JrCs 2013-02-01
#!/bin/sh
StartService() {
# Variables
currentDate=$(date "+%Y-%m-%d")
currentTime=$(date "+%H:%M:%S")
#
# Redirect all outputs to log file
#
exec &>"${CLOVER_LOG_LOCATION}"/rc.boot.log
#
# Print the current timestamp
#
echo "-------------------------------"
echo "DATE: ${currentDate} TIME: ${currentTime}"
echo "-------------------------------"
[[ "$DEBUG" -ne 0 ]] && set -x
# Launch some custom scripts if exists
rc_dir="${rcScriptsDir}/rc.boot.d"
if [[ -d "$rc_dir" ]]; then
# Remove space from IFS
IFS="$(printf '\n\t')"
for script in "$rc_dir"/*.local; do
if [[ ! -d "$script" && -x "$script" ]]; then
echo ">> Begin Script: ${script}"
$script
echo ">> End Script: ${script}"
echo
fi
done
fi
exec 1>&3 # Restore stdout to it's default value.
exec 2>&4 # Restore stderr to it's default value.
currentDate=$(date "+%Y-%m-%d")
currentTime=$(date "+%H:%M:%S")
echo "${currentDate} ${currentTime} - All clover startup scripts (locate in $rc_dir) have been started"
}
StopService() {
currentDate=$(date "+%Y-%m-%d")
currentTime=$(date "+%H:%M:%S")
#
# Redirect all outputs to log file
#
exec &>"${CLOVER_LOG_LOCATION}"/rc.shutdown.log
#
# Print the current timestamp
#
echo "-------------------------------"
echo "DATE: ${currentDate} TIME: ${currentTime}"
echo "-------------------------------"
[[ "$DEBUG" -ne 0 ]] && set -x
# Launch some custom scripts if exists
rc_dir="${rcScriptsDir}/rc.shutdown.d"
if [[ -d "$rc_dir" ]]; then
# Remove space from IFS
IFS="$(printf '\n\t')"
for script in "$rc_dir"/*.local; do
if [[ ! -d "$script" && -x "$script" ]]; then
echo ">> Begin Script: ${script}"
$script
echo ">> End Script: ${script}"
echo
fi
done
fi
exec 1>&3 # Restore stdout to it's default value.
exec 2>&4 # Restore stderr to it's default value.
currentDate=$(date "+%Y-%m-%d")
currentTime=$(date "+%H:%M:%S")
echo "${currentDate} ${currentTime} - All clover shutdown scripts (locate in $rc_dir) have been started"
echo "---------------------------------------------------"
echo "CloverDaemon stop at ${currentDate} ${currentTime}"
echo "---------------------------------------------------"
exit 0
}
# Main
CLOVER_DAEMON_LOG="/Library/Logs/CloverEFI/clover.daemon.log"
if [[ -f "$CLOVER_DAEMON_LOG" ]]; then
# Rotate the log (keep at least 80 lines)
tail -n 80 "$CLOVER_DAEMON_LOG" > "$CLOVER_DAEMON_LOG".tmp
cat "$CLOVER_DAEMON_LOG".tmp > "$CLOVER_DAEMON_LOG"
rm -f "$CLOVER_DAEMON_LOG".tmp
fi
exec 3>&1 # Save current "value" of stdout.
exec 4>&2 # Save current "value" of stderr.
currentDate=$(date "+%Y-%m-%d")
currentTime=$(date "+%H:%M:%S")
echo "---------------------------------------------------"
echo "CloverDaemon start at ${currentDate} ${currentTime}"
echo "---------------------------------------------------"
selfDir=$(cd "$(dirname '$0')" && pwd -P)
rcScriptsDir=/etc # Default directory for rc scripts
[[ -f "$selfDir"/rc.clover.lib ]] && rcScriptsDir="$selfDir"
#
# Source clover rc library
#
source "$rcScriptsDir"/rc.clover.lib
# Check that all variables are bound
set -u
StartService # Launch @ boot
#trap StopService SIGTERM # SIGTERM @ shutdown
#while true; do
# sleep 86400 & # Start the sleep process in background
# wait $! # and wait to finish
#done