diff --git a/Docker/rootfs/etc/services.d/NetDaemon/run b/Docker/rootfs/etc/services.d/NetDaemon/run index 9e5617db8..07bacd41e 100644 --- a/Docker/rootfs/etc/services.d/NetDaemon/run +++ b/Docker/rootfs/etc/services.d/NetDaemon/run @@ -1,20 +1,39 @@ -#!/bin/bash +#!/bin/env bash # ============================================================================== # NetDaemon Service # Starts NetDaemon # ============================================================================== -cd $HASS_RUN_PROJECT_FOLDER || echo -e "\033[31mCould not change directory to run project\033[0m" >&2 - -echo -e "\033[32mBuilding NetDaemon source...\033[0m" >&2 - -if dotnet publish -v q -c Release -o /daemon; then - dotnet build-server shutdown - if test -f "/daemon/Service"; then - echo -e "\033[32mStarting NetDaemon...\033[0m" >&2 - exec /daemon/Service - elif test -f "/daemon/daemonapp"; then - echo -e "\033[32mStarting custom NetDaemon project...\033[0m" >&2 - exec /daemon/daemonapp - fi +set -e + +declare runtype="Service" +declare daemondir="/daemon" +declare instansesrunning + +instansesrunning=$(pgrep bash) + +if [[ "${instansesrunning}" != "1" ]];then + echo -e "\\033[31mMultiple instances detected!\\033[0m" >&2 + echo -e "\\033[31mStopping this one\\033[0m" >&2 + exit 1 +fi + +cd "${HASS_RUN_PROJECT_FOLDER}" || echo -e "\\033[31mCould not change directory to run project\\033[0m" >&2 + +if [[ "${PWD}" != "${HASS_RUN_PROJECT_FOLDER}" ]]; then + exit 1 fi + +echo -e "\\033[32mBuilding NetDaemon source...\\033[0m" >&2 +if dotnet publish -v q -c Release -o "${daemondir}"; then + dotnet build-server shutdown || exit 1 +fi + +if test -f "${daemondir}/Service"; then + echo -e "\\033[32mStarting NetDaemon...\\033[0m" >&2 +elif test -f "${daemondir}/daemonapp"; then + echo -e "\\033[32mStarting custom NetDaemon project...\\033[0m" >&2 + runtype="daemonapp" +fi + +exec "${daemondir}/${runtype}" \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 6c645aab4..3d7a40923 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,6 @@ COPY ./src /usr/src # COPY Docker/rootfs/etc /etc COPY ./Docker/rootfs/etc/services.d/NetDaemon/run /rundaemon -RUN chmod +x /rundaemon # Set default values of NetDaemon env ENV \ @@ -21,4 +20,4 @@ ENV \ HASS_DAEMONAPPFOLDER=/data -ENTRYPOINT ["/rundaemon"] +ENTRYPOINT ["bash", "/rundaemon"]