You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
1.8 KiB
85 lines
1.8 KiB
#!/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 $?
|