mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-12-29 17:17:42 +01:00
143 lines
3.8 KiB
Plaintext
143 lines
3.8 KiB
Plaintext
|
#!/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
|