2022-12-05 21:54:55 +08:00

67 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
cat <<-EOF
#!/bin/bash
#=========================================
# Company : Boyachain
# Create : $(date +"%F %R")
# Author : Who the f**k r u!
#=========================================
set -euo pipefail
umask 0022
export LANG=en_US.UTF-8
PID_FILE=/tmp/\$(basename \${0%.sh}).pid
if [ -t 0 ]; then
function Print { echo -e "\033[36;1m\$(date +'[%F %T]')\033[32;1m \$*\033[0m"; }
function Warn { echo -e "\033[36;1m\$(date +'[%F %T]')\033[33;1m \$*\033[0m"; }
function Error { echo -e "\033[36;1m\$(date +'[%F %T]')\033[31;1m \$*\033[0m"; exit 1; }
else
#exec &> \${0%.sh}.out
function Print { echo -e "\$(date +'[%F %T INFO]') \$*"; }
function Warn { echo -e "\$(date +'[%F %T WARN]') \$*"; }
function Error { echo -e "\$(date +'[%F %T ERROR]') \$*"; exit 1; }
fi
function Quit {
local exitCode=\$?
rm -f \$PID_FILE
[ 0 -ne \$exitCode ] && Error Failed to xxxx!
[ -z "\${END:-}" ] && echo && Error Interrupted manually!
Print Succeeded to xxxx.
}
function Func1 {
Warn Func1 ...
}
function Func2 {
Warn Func2 ...
}
function CheckLock {
Warn Checking lock ...
[ -e "\$PID_FILE" ] \\
&& [ -d "/proc/\$(cat \$PID_FILE)" ] \\
&& cat /proc/\$(cat \$PID_FILE)/cmdline \\
&& echo \\
&& Error Pid file \$PID_FILE already exists, quit!
echo \$\$ > \$PID_FILE
}
function Main {
CheckLock
trap Quit EXIT
Warn Main ...
Func1
Func2
END=1
}
# Start here
Main
EOF