|
@@ -1,5 +1,6 @@
|
|
#!/bin/bash
|
|
#!/bin/bash
|
|
# usage: check/replace/serivce_wait/service_start
|
|
# usage: check/replace/serivce_wait/service_start
|
|
|
|
+
|
|
cd $(dirname $0)
|
|
cd $(dirname $0)
|
|
echo
|
|
echo
|
|
|
|
|
|
@@ -32,22 +33,32 @@ for f in $CONF_FILES; do
|
|
# metadata => "<location:LOCATION_OF_FILE> [MODE:600] [OWNER:USERNAME]"
|
|
# metadata => "<location:LOCATION_OF_FILE> [MODE:600] [OWNER:USERNAME]"
|
|
# if there is " " " in value, use "\" to escape
|
|
# if there is " " " in value, use "\" to escape
|
|
# use "${APP_HOME}/${APP_NAME}" to module home
|
|
# use "${APP_HOME}/${APP_NAME}" to module home
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ # dos2unix
|
|
|
|
+ if which dos2unix &>/dev/null; then
|
|
|
|
+ dos2unix $f
|
|
|
|
+ else
|
|
|
|
+ sed -i 's/.$//' $f
|
|
|
|
+ fi
|
|
|
|
+
|
|
# get the location of metadata
|
|
# get the location of metadata
|
|
METADATA_LOCATION=$(grep -iw metadata $f | awk -F'=>' '{print $2}' | \
|
|
METADATA_LOCATION=$(grep -iw metadata $f | awk -F'=>' '{print $2}' | \
|
|
awk -F'location:' '{print $2}' | sed -n '1p' | \
|
|
awk -F'location:' '{print $2}' | sed -n '1p' | \
|
|
awk '{print $1}' | tr -d ',;"' | tr -d "'")
|
|
awk '{print $1}' | tr -d ',;"' | tr -d "'")
|
|
-
|
|
|
|
|
|
+
|
|
# replace the variable to true path
|
|
# replace the variable to true path
|
|
METADATA_LOCATION=`eval echo $METADATA_LOCATION`
|
|
METADATA_LOCATION=`eval echo $METADATA_LOCATION`
|
|
-
|
|
|
|
|
|
+
|
|
# there is no location tag of metadata
|
|
# there is no location tag of metadata
|
|
if [ -z "$METADATA_LOCATION" ]; then
|
|
if [ -z "$METADATA_LOCATION" ]; then
|
|
echo "\"location\" of metadata in \"$f\" not define!"
|
|
echo "\"location\" of metadata in \"$f\" not define!"
|
|
check_passed="$check_passed false"
|
|
check_passed="$check_passed false"
|
|
continue
|
|
continue
|
|
else
|
|
else
|
|
|
|
+ # if is a path
|
|
if `dirname $METADATA_LOCATION &>/dev/null`; then
|
|
if `dirname $METADATA_LOCATION &>/dev/null`; then
|
|
|
|
+
|
|
|
|
+ # if does not exist, mkdir
|
|
if ! [ -d "$(dirname $METADATA_LOCATION)" ]; then
|
|
if ! [ -d "$(dirname $METADATA_LOCATION)" ]; then
|
|
echo "mkdir -p $(dirname $METADATA_LOCATION)"
|
|
echo "mkdir -p $(dirname $METADATA_LOCATION)"
|
|
mkdir -p $(dirname $METADATA_LOCATION)
|
|
mkdir -p $(dirname $METADATA_LOCATION)
|
|
@@ -59,20 +70,20 @@ for f in $CONF_FILES; do
|
|
fi
|
|
fi
|
|
dockerize_template="${dockerize_template} -template ${f}:${METADATA_LOCATION}"
|
|
dockerize_template="${dockerize_template} -template ${f}:${METADATA_LOCATION}"
|
|
fi
|
|
fi
|
|
-
|
|
|
|
|
|
+
|
|
# has location but no {{ VAR }}
|
|
# has location but no {{ VAR }}
|
|
VAR_IN_BRACE=$(grep {{.*}} $f | sed -n 's/.*{{ *\(.*\) *}}.*/\1/p')
|
|
VAR_IN_BRACE=$(grep {{.*}} $f | sed -n 's/.*{{ *\(.*\) *}}.*/\1/p')
|
|
if [ -z "$VAR_IN_BRACE" ]; then
|
|
if [ -z "$VAR_IN_BRACE" ]; then
|
|
echo "skip \"${f}\" without replacing, pass."
|
|
echo "skip \"${f}\" without replacing, pass."
|
|
continue
|
|
continue
|
|
-
|
|
|
|
|
|
+
|
|
# has location and {{ VAR }}
|
|
# has location and {{ VAR }}
|
|
else
|
|
else
|
|
# loop to check
|
|
# loop to check
|
|
for i in $VAR_IN_BRACE; do
|
|
for i in $VAR_IN_BRACE; do
|
|
VAR_TO_CHECK=${i##.Env.}
|
|
VAR_TO_CHECK=${i##.Env.}
|
|
VAR_TO_CHECK=`echo $VAR_TO_CHECK`
|
|
VAR_TO_CHECK=`echo $VAR_TO_CHECK`
|
|
-
|
|
|
|
|
|
+
|
|
# Check the value
|
|
# Check the value
|
|
if [ -z "${!VAR_TO_CHECK}" ]; then
|
|
if [ -z "${!VAR_TO_CHECK}" ]; then
|
|
echo "Can not get env: \"${VAR_TO_CHECK}\" in file: \"$f\" !"
|
|
echo "Can not get env: \"${VAR_TO_CHECK}\" in file: \"$f\" !"
|
|
@@ -92,7 +103,7 @@ if echo $check_passed | grep -wq "false"; then
|
|
echo " 2. compose file (recommand)"
|
|
echo " 2. compose file (recommand)"
|
|
echo " 3. docker run with \"-e\" option"
|
|
echo " 3. docker run with \"-e\" option"
|
|
echo "And you can receive value with \"{{ .Env.VARIABLE_NAME }}\" in config file."
|
|
echo "And you can receive value with \"{{ .Env.VARIABLE_NAME }}\" in config file."
|
|
- echo
|
|
|
|
|
|
+ echo
|
|
exit 1
|
|
exit 1
|
|
else
|
|
else
|
|
echo "Env check pass."
|
|
echo "Env check pass."
|
|
@@ -105,29 +116,39 @@ for i in ${!APP_DEP*}; do
|
|
done
|
|
done
|
|
|
|
|
|
|
|
|
|
-# replace¡¢Serivce Wait
|
|
|
|
|
|
+# replace�Serivce wait�Service start
|
|
echo -n "Pre-starting.."
|
|
echo -n "Pre-starting.."
|
|
dockerize \
|
|
dockerize \
|
|
${dockerize_template} \
|
|
${dockerize_template} \
|
|
- ${dockerize_wait} -timeout 120s \
|
|
|
|
|
|
+ ${dockerize_wait} -timeout 1200s \
|
|
-stdout /var/log/${APP_NAME}.log \
|
|
-stdout /var/log/${APP_NAME}.log \
|
|
-stderr /var/log/${APP_NAME}.log \
|
|
-stderr /var/log/${APP_NAME}.log \
|
|
echo "done"
|
|
echo "done"
|
|
echo
|
|
echo
|
|
|
|
|
|
|
|
+# get logs
|
|
|
|
+for log in ${!APP_LOG*}; do
|
|
|
|
+
|
|
|
|
+ # pre-create log file
|
|
|
|
+ mkdir -p `dirname ${!log}`
|
|
|
|
+ touch ${!log}
|
|
|
|
+
|
|
|
|
+ LOG_LIST="${LOG_LIST} ${!log}"
|
|
|
|
+done
|
|
|
|
+
|
|
|
|
|
|
-# start, important
|
|
|
|
|
|
+# start
|
|
Service_Start() {
|
|
Service_Start() {
|
|
echo "Starting ${APP_NAME}.."
|
|
echo "Starting ${APP_NAME}.."
|
|
-
|
|
|
|
|
|
+
|
|
####### START COMMAND HERE #########
|
|
####### START COMMAND HERE #########
|
|
- set -e
|
|
|
|
- start_${APP_NAME} && \
|
|
|
|
|
|
+ set -e
|
|
|
|
+ bash -x `which start_${APP_NAME}` && \
|
|
echo "success" && \
|
|
echo "success" && \
|
|
- tail -f /var/log/${APP_NAME}.log
|
|
|
|
-
|
|
|
|
|
|
+ tail -f /var/log/${APP_NAME}.log $LOG_LIST
|
|
|
|
+
|
|
####################################
|
|
####################################
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
# default: start the service
|
|
# default: start the service
|