Verified Commit f7655835 authored by DevOps's avatar DevOps

Initial commit

parents
config.txt
#!/usr/bin/env bash
set -e
SILENT=false
COLOR=true
SCRIPTPATH="$(cd $(dirname ${0}); pwd -P)"
SERVER_ADDR="https://app.emcode-provision.app.docker.rew.to"
TOKEN="Rgg5gzEZuzLfF9hR"
### possible value: alt,script
# CODE_TYPE="script"
# CODE_SECURE=true
### path to store state of code
STATE_PATH="${HOME}/emcode-store"
### absolute path to store code (default: <STATE_PATH>)
CODE_PATH="${STATE_PATH}/code.js"
_query_args="token=${TOKEN}"
_version_filename="version"
init_config() {
local write_config=false
if [[ -f ${SCRIPTPATH}/config.txt ]]; then
source ${SCRIPTPATH}/config.txt
log "load config \"${SCRIPTPATH}/config.txt\""
else
write_config=true
fi
# IFS="="
#
# for param in $@; do
# read -ra key_val <<<${param}
# # echo ${key_val[@]}
# case ${key_val[0]} in
# "--code-path")
# CODE_PATH="${key_val[1]}"
# write_config=true
# ;;
# "--code-type")
# # CODE_TYPE="${key_val[1]}"
# echo ${key_val[@]}
# write_config=true
# ;;
# esac
# done
#
# unset IFS
if [[ ${write_config} == true ]]; then
save_config
log "save config \"${SCRIPTPATH}/config.txt\""
fi
}
bool_string() {
if [[ ${1} == true ]]; then
echo "true"
else
echo "false"
fi
}
save_config() {
cat <<EOF >${SCRIPTPATH}/config.txt
# display settings
SILENT=$(bool_string ${SILENT})
COLOR=$(bool_string ${COLOR})
# code setting
STATE_PATH=${STATE_PATH}
CODE_PATH=${CODE_PATH}
CODE_TYPE=$([[ -z ${CODE_TYPE} ]] && echo "default" || echo "${CODE_TYPE}")
CODE_SECURE=$(bool_string ${CODE_SECURE})
EOF
}
make_query_args() {
if [[ ! -z ${CODE_TYPE} ]] && [[ ${CODE_TYPE} != "default" ]]; then
_query_args+="&type=${CODE_TYPE}"
_version_filename+="_${CODE_TYPE}"
fi
if [[ ${CODE_SECURE} == true ]]; then
_query_args+="&scheme=https"
_version_filename+="_secure"
fi
local version=$(cat ${STATE_PATH}/${_version_filename}.txt 2>/dev/null | tr -d '\n')
if [[ ! -z ${version} ]]; then
_query_args+="&ver=${version}"
fi
}
log() {
local level="INFO"
local date_format="[$(date)]"
if [[ ${SILENT} == true ]]; then
return
fi
if [[ ${COLOR} == true ]]; then
echo -en "\e[94m${date_format} \e[91m${level} \e[39m"
else
echo -n "${date_format} ${level} "
fi
echo "$@"
}
extract_version() {
local begin_comment="<!--"
local end_comment="-->"
if [[ ${CODE_TYPE} == "script" ]]; then
begin_comment="/\*"
end_comment="\*/"
fi
grep -oP "(?<=${begin_comment})[0-9a-f_-]+(?=${end_comment})" <<< ${1}
}
make_home() {
if [[ ! -d ${STATE_PATH} ]]; then
mkdir -p ${STATE_PATH}
fi
}
main() {
make_query_args
local url="${SERVER_ADDR}?${_query_args}"
log "request to server \"${url}\""
local code=$(curl -s -L ${url})
local version=$(extract_version "${code}")
if [[ ! -z ${version} ]]; then
make_home
cat <<<${code} >${CODE_PATH}
echo -n ${version} >${STATE_PATH}/${_version_filename}.txt
log "code updated to version \"${version}\""
fi
}
init_config $@
main
# save_config
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment