#!/usr/bin/env bash CONFIG_FILE="/etc/openmtc/orioncontextbroker/config.json" NAME=${NAME-"OrionContextBroker"} EP=${EP-"http://localhost:18000"} CSE_BASE=${CSE_BASE-"onem2m"} POAS=${POAS-'["http://auto:25396"]'} ORIGINATOR_PRE=${ORIGINATOR_PRE-"//openmtc.org/in-cse-1"} SSL_CRT=${SSL_CRT-"/etc/openmtc/certs/orioncontextbroker.cert.pem"} SSL_KEY=${SSL_KEY-"/etc/openmtc/certs/orioncontextbroker.key.pem"} SSL_CA=${SSL_CA-"/etc/openmtc/certs/ca-chain.cert.pem"} LABELS=${LABELS-'["openmtc:sensor_data"]'} ORION_HOST=${ORION_HOST-"http://localhost:1026"} ORION_API=${ORION_API-"v2"} ACCUMULATE_ADDRESS=${ACCUMULATE_ADDRESS} LABELS=${LABELS-'["openmtc:sensor_data"]'} # defaults logging LOGGING_FILE=${LOGGING_FILE-"/var/log/openmtc/orioncontextbroker.log"} LOGGING_LEVEL=${LOGGING_LEVEL-"ERROR"} # ensure correct level case ${LOGGING_LEVEL} in FATAL|ERROR|WARN|INFO|DEBUG) ;; *) LOGGING_LEVEL="ERROR" ;; esac # local ip LOCAL_IP=$(ip r get 8.8.8.8 | awk 'NR==1 {print $NF}') # set hostname HOST_NAME=${EXTERNAL_IP-${LOCAL_IP}} # Configuration of the service. CONFIG_TEMP=${CONFIG_FILE}".tmp" echo -n "Configuring M2M orioncontextbroker..." JQ_STRING='.' # basics JQ_STRING=${JQ_STRING}' | .name = "'${NAME}'" | .ep = "'${EP}'" | .cse_base = "'${CSE_BASE}'" | .poas = '${POAS}' | .originator_pre = "'${ORIGINATOR_PRE}'" | .labels = '${LABELS}' | .orion_host = "'${ORION_HOST}'" | .orion_api = "'${ORION_API}'" | .accumulate_address = "'${ACCUMULATE_ADDRESS}'" | .labels = '${LABELS}' | .ssl_certs.cert_file = "'${SSL_CRT}'" | .ssl_certs.key_file = "'${SSL_KEY}'" | .ssl_certs.ca_certs = "'${SSL_CA}'" | .logging.file |= "'${LOGGING_FILE}'" | .logging.level |= "'${LOGGING_LEVEL}'" ' cat ${CONFIG_FILE} | jq -M "${JQ_STRING}"> ${CONFIG_TEMP} mv ${CONFIG_TEMP} ${CONFIG_FILE} echo "done" exec python3 -m orioncontextbroker $@