diff --git a/samba/CHANGELOG.md b/samba/CHANGELOG.md index 607ff1f..8de4e2a 100644 --- a/samba/CHANGELOG.md +++ b/samba/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 8.2 +- Update from bash to bashio + ## 8.1 - Update Samba to version 4.8.8 diff --git a/samba/config.json b/samba/config.json index 5fa7723..9e30073 100644 --- a/samba/config.json +++ b/samba/config.json @@ -1,6 +1,6 @@ { "name": "Samba share", - "version": "8.1", + "version": "8.2", "slug": "samba", "description": "Expose Hass.io folders with SMB/CIFS", "url": "https://home-assistant.io/addons/samba/", diff --git a/samba/run.sh b/samba/run.sh index 1df8002..876f5c8 100755 --- a/samba/run.sh +++ b/samba/run.sh @@ -1,37 +1,34 @@ -#!/bin/bash +#!/usr/bin/env bashio set -e -CONFIG_PATH=/data/options.json - -WORKGROUP=$(jq --raw-output '.workgroup' $CONFIG_PATH) -INTERFACE=$(jq --raw-output '.interface // empty' $CONFIG_PATH) -ALLOW_HOSTS=$(jq --raw-output '.allow_hosts | join(" ")' $CONFIG_PATH) -USERNAME=$(jq --raw-output '.username // empty' $CONFIG_PATH) -PASSWORD=$(jq --raw-output '.password // empty' $CONFIG_PATH) +WORKGROUP=$(bashio::config 'workgroup') +INTERFACE=$(bashio::config 'interface') +ALLOW_HOSTS=$(bashio::config "allow_hosts | join(\" \")") +USERNAME=$(bashio::config 'username') +PASSWORD=$(bashio::config 'password') WAIT_PIDS=() NAME= # Check Login data -if [ -z "${USERNAME}" ] || [ -z "${PASSWORD}" ]; then - echo "[ERROR] No valid login data inside options!" - exit 1 +if ! bashio::config.has_value 'username' || ! bashio::config.has_value 'password'; then + bashio::exit.nok "No valid login data inside options!" fi -# Read hostname from API -if ! NAME="$(curl -s -f -H "X-Hassio-Key: ${HASSIO_TOKEN}" http://hassio/info | jq --raw-output '.data.hostname')"; then - echo "[WARN] Can't read hostname, use default!" +# Read hostname from API or setting default "hassio" +NAME=$(bashio::info.hostname) +if bashio::var.is_empty "${NAME}"; then + bashio::log.warn "Can't read hostname, using default." NAME="hassio" -else - echo "[INFO] Read hostname: ${NAME}" fi +bashio::log.info "Hostname: ${NAME}" # Setup config -sed -i "s|%%WORKGROUP%%|$WORKGROUP|g" /etc/smb.conf -sed -i "s|%%NAME%%|$NAME|g" /etc/smb.conf -sed -i "s|%%INTERFACE%%|$INTERFACE|g" /etc/smb.conf -sed -i "s|%%ALLOW_HOSTS%%|$ALLOW_HOSTS|g" /etc/smb.conf -sed -i "s|%%USERNAME%%|$USERNAME|g" /etc/smb.conf +sed -i "s|%%WORKGROUP%%|${WORKGROUP}|g" /etc/smb.conf +sed -i "s|%%NAME%%|${NAME}|g" /etc/smb.conf +sed -i "s|%%INTERFACE%%|${INTERFACE}|g" /etc/smb.conf +sed -i "s|%%USERNAME%%|${USERNAME}|g" /etc/smb.conf +sed -i "s#%%ALLOW_HOSTS%%#${ALLOW_HOSTS}#g" /etc/smb.conf # Init users addgroup "${USERNAME}" @@ -48,10 +45,10 @@ WAIT_PIDS+=($!) # Register stop function stop_samba() { - echo "Kill Processes..." + bashio::log.info "Kill Processes..." kill -15 "${WAIT_PIDS[@]}" wait "${WAIT_PIDS[@]}" - echo "Done." + bashio::log.info "Done." } trap "stop_samba" SIGTERM SIGHUP