forked from WeiYe-Jing/datax-web
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstart.sh
84 lines (73 loc) · 1.83 KB
/
start.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/bin/bash
MODULE_NAME=""
MODULE_DEFAULT_PREFIX="datax-"
usage(){
echo "Usage is [-m module will be started]"
}
function LOG(){
currentTime=`date "+%Y-%m-%d %H:%M:%S.%3N"`
echo -e "$currentTime [${1}] ($$) $2" | tee -a ${SHELL_LOG}
}
abs_path(){
SOURCE="${BASH_SOURCE[0]}"
while [ -h "${SOURCE}" ]; do
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "${SOURCE}")"
[[ ${SOURCE} != /* ]] && SOURCE="${DIR}/${SOURCE}"
done
echo "$( cd -P "$( dirname "${SOURCE}" )" && pwd )"
}
BIN=`abs_path`
MODULE_DIR=${BIN}/../modules
SHELL_LOG="${BIN}/console.out"
interact_echo(){
while [ 1 ]; do
read -p "$1 (Y/N)" yn
if [ "${yn}x" == "Yx" ] || [ "${yn}x" == "yx" ]; then
return 0
elif [ "${yn}x" == "Nx" ] || [ "${yn}x" == "nx" ]; then
return 1
else
echo "Unknown choise: [$yn], please choose again."
fi
done
}
start_single_module(){
LOG INFO "\033[1m ####### Begin To Start Module: [$1] ######\033[0m"
if [ -f "${MODULE_DIR}/$1/bin/$1.sh" ]; then
${MODULE_DIR}/$1/bin/$1.sh start
elif [[ $1 != ${MODULE_DEFAULT_PREFIX}* ]] && [ -f "${MODULE_DIR}/${MODULE_DEFAULT_PREFIX}$1/bin/${MODULE_DEFAULT_PREFIX}$1.sh" ]; then
interact_echo "Do you mean [${MODULE_DEFAULT_PREFIX}$1] ?"
if [ $? == 0 ]; then
${MODULE_DIR}/${MODULE_DEFAULT_PREFIX}$1/bin/${MODULE_DEFAULT_PREFIX}$1.sh start
fi
else
LOG ERROR "Cannot find the startup script for module: [$1], please check your installation"
exit 1
fi
}
while [ 1 ]; do
case ${!OPTIND} in
-m|--modules)
if [ -z $2 ]; then
LOG ERROR "No module provided"
exit 1
fi
MODULE_NAME=$2
shift 2
;;
"")
break
;;
*)
usage
exit 1
;;
esac
done
if [ "x${MODULE_NAME}" == "x" ]; then
usage
exit 1
fi
start_single_module ${MODULE_NAME}
exit $?