102 lines
2.4 KiB
Bash
Executable File
102 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# ./scripts/deploy_ui_files.sh http://dev.clientapi.teaspeak.de/api.php test 1.1.0
|
|
|
|
TMP_FILE_NAME="TeaSpeakUI.tar.gz"
|
|
TMP_DIR_NAME="tmp"
|
|
|
|
BASEDIR=$(dirname "$0")
|
|
cd "$BASEDIR/../"
|
|
|
|
if [ "$#" -ne 3 ]; then
|
|
echo "Illegal number of parameters (url | channel | required version)"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d client-api/environment/ui-files/ ]; then
|
|
echo "Missing UI Files"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${teaclient_deploy_secret}" == "" ]; then
|
|
echo "Missing deploy secret!"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -e "${TMP_FILE_NAME}" ]; then
|
|
echo "Temp file already exists!"
|
|
echo "Deleting it!"
|
|
rm ${TMP_FILE_NAME}
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to delete file"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
GIT_HASH=$(git rev-parse --verify --short HEAD)
|
|
APPLICATION_VERSION=$(cat package.json | python -c "import sys, json; print(json.load(sys.stdin)['version'])")
|
|
echo "Git hash ${GIT_HASH} on version ${APPLICATION_VERSION} on channel $2"
|
|
|
|
#Packaging the app
|
|
cd client-api/environment/ui-files/
|
|
if [ -e ${TMP_DIR_NAME} ]; then
|
|
rm -r ${TMP_DIR_NAME}
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to remove temporary directory!"
|
|
exit 1
|
|
fi
|
|
fi
|
|
cp -rL raw ${TMP_DIR_NAME}
|
|
|
|
for file in $(find ${TMP_DIR_NAME} -name '*.php'); do
|
|
echo "Evaluating php file $file"
|
|
RESULT=$(php "${file}" 2> /dev/null)
|
|
CODE=$?
|
|
if [ ${CODE} -ne 0 ]; then
|
|
echo "Failed to evaluate php file $file!"
|
|
echo "Return code $CODE"
|
|
exit 1
|
|
fi
|
|
|
|
echo "${RESULT}" > "${file::-4}.html"
|
|
done
|
|
|
|
cd ${TMP_DIR_NAME}
|
|
tar chvzf ${TMP_FILE_NAME} *
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to pack file"
|
|
exit 1
|
|
fi
|
|
mv ${TMP_FILE_NAME} ../../../../
|
|
cd ../
|
|
rm -r ${TMP_DIR_NAME}
|
|
cd ../../../
|
|
|
|
RESP=$(curl \
|
|
-k \
|
|
-X POST \
|
|
-F "required_client=$3" \
|
|
-F "type=deploy-ui-build" \
|
|
-F "channel=$2" \
|
|
-F "version=$APPLICATION_VERSION" \
|
|
-F "git_ref=$GIT_HASH" \
|
|
-F "secret=${teaclient_deploy_secret}" \
|
|
-F "file=@`pwd`/TeaSpeakUI.tar.gz" \
|
|
$1
|
|
)
|
|
echo "$RESP"
|
|
SUCCESS=$(echo ${RESP} | python -c "import sys, json; print(json.load(sys.stdin)['success'])")
|
|
|
|
if [ ! "${SUCCESS}" == "True" ]; then
|
|
ERROR=$(echo ${RESP} | python -c "import sys, json; print(json.load(sys.stdin)['error'])" 2>/dev/null)
|
|
if [ $? -ne 0 ]; then
|
|
ERROR=$(echo ${RESP} | python -c "import sys, json; print(json.load(sys.stdin)['msg'])" 2>/dev/null)
|
|
fi
|
|
echo "Failed to deploy build!"
|
|
echo "${ERROR}"
|
|
|
|
rm ${TMP_FILE_NAME}
|
|
exit 1
|
|
fi
|
|
|
|
echo "Build deployed!" |