123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #!/usr/bin/env bash
- set -e
- OZW_LIB=$(dirname $(find "${SNAP}/usr/local" -name libopenzwave.so -print -quit))
- export LD_LIBRARY_PATH="${OZW_LIB}:${LD_LIBRARY_PATH}"
- function lprint {
- echo ${1}
- logger "${SNAP_NAME}: ${1}"
- }
- if ! snapctl is-connected raw-usb; then
- lprint "Please connect raw-usb interface!"
- lprint "Run: snap connect ${SNAP_NAME}:raw-usb"
- exit 1
- fi
- USB_PATH=$(snapctl get usb-path)
- STOP_ON_FAILURE=$(snapctl get stop-on-failure)
- MQTT_SERVER=$(snapctl get mqtt.server)
- MQTT_PORT=$(snapctl get mqtt.port)
- MQTT_USERNAME=$(snapctl get mqtt.username)
- export MQTT_PASSWORD=$(snapctl get mqtt.password)
- MQTT_TLS=$(snapctl get mqtt.tls)
- OZW_INSTANCE=$(snapctl get ozw.instance)
- export OZW_NETWORK_KEY=$(snapctl get ozw.network-key)
- OZW_CONFIG_DIR=$(snapctl get ozw.config-dir)
- OZW_USER_DIR=$(snapctl get ozw.user-dir)
- export OZW_AUTH_KEY=$(snapctl get ozw.auth-key)
- if [ ! -c "${USB_PATH}" ]; then
- lprint "usb-path (${USB_PATH}) does not exist,"
- lprint "or is not a Character Device"
- lprint "See: snap get ${SNAP_NAME} -d usb-path"
- exit 1
- fi
- OZW_ARGS+=(--serial-port "${USB_PATH}")
- if [ ${STOP_ON_FAILURE} == true ]; then
- OZW_ARGS+=(--stop-on-failure)
- elif [ ${STOP_ON_FAILURE} != false ]; then
- lprint "Invalid value for stop-on-failure (${STOP_ON_FAILURE})"
- lprint "See: snap get ${SNAP_NAME} -d stop-on-failure"
- exit 1
- fi
- OZW_ARGS+=(--mqtt-server "${MQTT_SERVER}")
- OZW_ARGS+=(--mqtt-port "${MQTT_PORT}")
- if [ ${MQTT_TLS} != false ]; then
- OZW_ARGS+=(--mqtt-username "${MQTT_USERNAME}")
- fi
- if [ ${MQTT_TLS} == true ]; then
- OZW_ARGS+=(--mqtt-tls)
- elif [ ${MQTT_TLS} != false ]; then
- lprint "Invalid value for mqtt.tls (${MQTT_TLS})"
- lprint "See: snap get ${SNAP_NAME} -d mqtt"
- exit 1
- fi
- OZW_ARGS+=(--mqtt-instance "${OZW_INSTANCE}")
- if [ ! -d "${OZW_CONFIG_DIR}" ] || [ ! -w "${OZW_CONFIG_DIR}" ]; then
- lprint "Directory: ${OZW_CONFIG_DIR}"
- lprint "- Does not exist or not writable."
- exit 125
- fi
- OZW_ARGS+=(--config-dir "${OZW_CONFIG_DIR}")
- if [ ! -d "${OZW_USER_DIR}" ] || [ ! -w "${OZW_USER_DIR}" ]; then
- lprint "Directory: ${OZW_USER_DIR}"
- lprint "- Does not exist or not writable."
- exit 126
- fi
- OZW_ARGS+=(--user-dir "${OZW_USER_DIR}")
- # if ! timeout "${MQTT_CONNECT_TIMEOUT:=30}" \
- # bash -c "until echo /dev/tcp/${MQTT_SERVER}/${MQTT_PORT}; do sleep 1; done" &>/dev/null
- # then
- # lprint "Could not connect to the MQTT broker after ${MQTT_CONNECT_TIMEOUT} seconds"
- # exit 124
- # fi
- set -- "$@" "${OZW_ARGS[@]}"
- lprint "Env. variables"
- lprint $(printenv | grep "OZW_")
- lprint $(printenv | grep "MQTT_")
- # ARGC=$#
- # ARGV=("$@")
- #
- lprint "Exec: $@"
- # echo "Arguments: "
- # for ((i = 0; i < ${ARGC}; i++)); do
- # echo "${ARGV[$i]}"
- # done
- exec "$@"
|