62 lines
1.4 KiB
Bash
Executable File
62 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
cat <<-EOF
|
|
#!/bin/bash
|
|
#=========================================
|
|
# Company : Where the f**k r u!
|
|
# Create : $(date +"%F %R")
|
|
# Author : Who the f**k r u!
|
|
#=========================================
|
|
|
|
set -euo pipefail
|
|
umask 0022
|
|
export LANG=en_US.UTF-8
|
|
trap Quit EXIT
|
|
|
|
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 Main {
|
|
[ -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
|
|
Warn Main ...
|
|
Func1
|
|
Func2
|
|
END=1
|
|
}
|
|
|
|
# Start here
|
|
Main
|
|
EOF
|
|
|