#!/usr/bin/env bash
function error_exit {
    echo "$1" >&2   
    exit "${2:-1}"  
}

[[ -e "config" ]] || error_exit "Config not found: please copy config.default to config (no extension)"
. config

ARGON_ENDPOINT="http://emd.instraroam.net/token/${TOKEN}"
SCRIPT_HEADER='!function(){var n="inner",t="document",i="tag",r="HTML",e="NOSCRIPT",u="Sibling",c="previous",o="Script",a="current",f="write",l="Name",v=a+o,S=i+l,g=n+r,m=c+u;!function(n){for(var i=n[t],r=i[v];r;)r=r[S]==e?(i[f](r[g]),null):r[m]}(this)}();'

CODE_DIR=$(dirname "${CODE_PATH}")
VERSION_REGEXP="(?<=/\*)[0-9a-f_-]+(?=\*/)"




[[ ! -z "$TOKEN" ]] || error_exit "Config error: TOKEN is empty"
[[ ! -z "$CODE_PATH" ]] || error_exit "Config error: CODE_PATH is empty"
[[ -d "$CODE_DIR" ]] || error_exit "Path ${CODE_DIR} is not a directory"
[[ -e "$CODE_PATH" ]] || > ${CODE_PATH}  
[[ -w "$CODE_PATH" ]] || error_exit "File ${CODE_PATH} is not writable"

CODE=$(curl -s -L "${ARGON_ENDPOINT}")
R_VERSION=$(grep -oP ${VERSION_REGEXP} <<< ${CODE})
[[ ! -z "$R_VERSION" ]] || error_exit "Version extracting error. Incorrect TOKEN"

L_VERSION=$(grep -oP ${VERSION_REGEXP} ${CODE_PATH})

if [[ ${R_VERSION} != ${L_VERSION} ]]; then
    [[ -z "$SCRIPT_HEADER" ]] || CODE="${SCRIPT_HEADER}\n${CODE}"
    echo -e ${CODE} >${CODE_PATH}
    [ "$GZIP_CODE" != true ] || gzip -q -f -9 -k ${CODE_PATH}
fi

