diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 9f9748d..3811422 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,16 +1,13 @@ -ARG BUILD_FROM BUILD_FROM_TAG -FROM python:3.12-slim +FROM homeassistant/home-assistant:dev ENV DEVCONTAINER=true COPY ./container /container COPY ./install /install -ARG OS_VARIANT CONTAINER_TYPE RUN \ bash /install/init.sh \ && bash /install/container.sh \ - && bash /install/integration.sh \ && bash /install/cleanup.sh CMD ["bash"] diff --git a/.devcontainer/container/helpers/common/homeassistant/check-config.sh b/.devcontainer/container/helpers/homeassistant/check-config.sh similarity index 100% rename from .devcontainer/container/helpers/common/homeassistant/check-config.sh rename to .devcontainer/container/helpers/homeassistant/check-config.sh diff --git a/.devcontainer/container/helpers/common/homeassistant/set-version.sh b/.devcontainer/container/helpers/homeassistant/set-version.sh similarity index 100% rename from .devcontainer/container/helpers/common/homeassistant/set-version.sh rename to .devcontainer/container/helpers/homeassistant/set-version.sh diff --git a/.devcontainer/container/helpers/common/homeassistant/start.sh b/.devcontainer/container/helpers/homeassistant/start.sh similarity index 90% rename from .devcontainer/container/helpers/common/homeassistant/start.sh rename to .devcontainer/container/helpers/homeassistant/start.sh index 080e956..8784dc8 100644 --- a/.devcontainer/container/helpers/common/homeassistant/start.sh +++ b/.devcontainer/container/helpers/homeassistant/start.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # shellcheck source=/dev/null -source /opt/container/helpers/common/paths.sh +source /opt/container/helpers/paths.sh mkdir -p /config if test -f "$(workspacePath)config/configuration.yaml"; then @@ -22,12 +22,12 @@ fi if test -d "$(workspacePath)custom_components"; then echo "Symlink the custom component directory" - if test -d "$(workspacePath)custom_components"; then + if test -d "/config/custom_components"; then rm -R /config/custom_components fi ln -sf "$(workspacePath)custom_components/" /config/custom_components || echo "Could not copy the custom_component" exit 1 -elif test -f "__init__.py"; then +elif test -f "__init__.py"; then echo "Having the component in the root is currently not supported" fi diff --git a/.devcontainer/container/helpers/integration/init.sh b/.devcontainer/container/helpers/integration/init.sh deleted file mode 100644 index 7118acb..0000000 --- a/.devcontainer/container/helpers/integration/init.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash -# shellcheck source=/dev/null - -source /opt/container/helpers/common/paths.sh - - -if test -d "$(workspacePath).git"; then - echo ".git exsist in $(workspacePath), existing initializing" - exit 1 -fi - -echo "Initializing dev env for integration" -rm -R /tmp/init > /dev/null 2>&1 - -git clone https://github.com/custom-components/integration-blueprint.git /tmp/init - -rm -R /tmp/init/.git -rm -R /tmp/init/.devcontainer -cp -a /tmp/init/. "$(workspacePath)" -cd "$(workspacePath)" || exit 1 -git init diff --git a/.devcontainer/container/helpers/common/paths.sh b/.devcontainer/container/helpers/paths.sh similarity index 100% rename from .devcontainer/container/helpers/common/paths.sh rename to .devcontainer/container/helpers/paths.sh diff --git a/.devcontainer/container/makefiles/integration.mk b/.devcontainer/container/makefiles/integration.mk index 87fa68b..3de0d34 100644 --- a/.devcontainer/container/makefiles/integration.mk +++ b/.devcontainer/container/makefiles/integration.mk @@ -1,8 +1,14 @@ start: ## Start Home Assistant with the integration loaded - @bash /opt/container/helpers/common/homeassistant/start.sh + @bash /opt/container/helpers/homeassistant/start.sh + +run: + start + +up: + start set-version: ## Set Home Assistant version - @bash /opt/container/helpers/common/homeassistant/set-version.sh + @bash /opt/container/helpers/homeassistant/set-version.sh install: ## Install Home Assistant dev in the container @python3 -m pip --disable-pip-version-check install --upgrade git+https://github.com/home-assistant/home-assistant.git@dev @@ -10,11 +16,5 @@ install: ## Install Home Assistant dev in the container upgrade: ## Upgrade Home Assistant to latest dev in the container install -run: - start - check-config: ## Check Home Assistant config @hass -c /config --script check_config - -init: ## Initialize the dev env - @bash /opt/container/helpers/integration/init.sh \ No newline at end of file diff --git a/.devcontainer/install/cleanup.sh b/.devcontainer/install/cleanup.sh index f196398..7374c73 100644 --- a/.devcontainer/install/cleanup.sh +++ b/.devcontainer/install/cleanup.sh @@ -2,7 +2,6 @@ echo -e "\\033[0;34mRunning cleanup script 'cleanup.sh'\\033[0m" -apt-get clean -y rm -fr /var/lib/apt/lists/* rm -fr /tmp/* /var/{cache,log}/* diff --git a/.devcontainer/install/container.sh b/.devcontainer/install/container.sh index 82122a7..5c7894a 100644 --- a/.devcontainer/install/container.sh +++ b/.devcontainer/install/container.sh @@ -4,21 +4,19 @@ echo -e "\\033[0;34mRunning install script 'container.sh'\\033[0m" export DEBIAN_FRONTEND=noninteractive -apt-get update -apt-get install -y --no-install-recommends \ - make +apk add --no-cache \ + make \ + git mkdir -p /opt/container/makefiles mkdir -p /opt/container/helpers -touch /opt/container/makefiles/dummy.mk cp /container/container.mk /opt/container/container.mk -cp -r /container/helpers/common /opt/container/helpers/common +cp -r /container/helpers /opt/container/helpers cp /container/container /usr/bin/container chmod +x /usr/bin/container cp /container/makefiles/integration.mk /opt/container/makefiles/integration.mk -cp -r /container/helpers/integration /opt/container/helpers/integration container help diff --git a/.devcontainer/install/integration.sh b/.devcontainer/install/integration.sh deleted file mode 100644 index bb3fbb5..0000000 --- a/.devcontainer/install/integration.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash -set -e -echo -e "\\033[0;34mRunning install script 'integration.sh'\\033[0m" - -export DEBIAN_FRONTEND=noninteractive - -apt-get update -apt-get install -y --no-install-recommends \ - build-essential \ - ca-certificates \ - curl \ - ffmpeg \ - gcc \ - git \ - jq \ - libavcodec-dev \ - libavdevice-dev \ - libavfilter-dev \ - libavformat-dev \ - libavutil-dev \ - libbz2-dev \ - libcap-dev \ - libffi-dev \ - libjpeg-dev \ - liblzma-dev \ - libncurses5-dev \ - libncursesw5-dev \ - libpcap-dev \ - libreadline-dev \ - libsqlite3-dev \ - libssl-dev \ - libswresample-dev \ - libswscale-dev \ - llvm \ - shellcheck \ - tar \ - tk-dev \ - wget \ - xz-utils \ - zlib1g-dev - -python3 -m pip --disable-pip-version-check install --upgrade \ - git+https://github.com/home-assistant/home-assistant.git@dev -python3 -m pip --disable-pip-version-check install --upgrade wheel setuptools - -# Fix issue https://github.com/home-assistant/core/issues/95192 -python3 -m pip --disable-pip-version-check install --upgrade git+https://github.com/boto/botocore urllib3~=1.26 diff --git a/scripts/devcontainer b/scripts/devcontainer index b586313..5a4cf77 100755 --- a/scripts/devcontainer +++ b/scripts/devcontainer @@ -84,10 +84,6 @@ if ! ${docker} ps -a | grep -wq ${container} && [[ "${cmd}" != "down" ]]; then ${docker} create -it --name "${container}" -p "${port}" -v "${volume}" "${image}" docker_start - - log.info "Initialize container..." - ${docker} exec -it -w "${workdir}" "${container}" container install - bootstrap "install" fi if [[ "${cmd}" == "menu" ]]; then @@ -143,7 +139,7 @@ case "${cmd}" in docker_start fi log.info "Send command '${cmd}' to container..." - if [[ "${cmd}" == "start" ]]; then + if [[ "${cmd}" == "start" || "${cmd}" == "up" || "${cmd}" == "run" ]]; then log.info "Note: After Home Assistant initialization you can access to system on http://localhost:9123/" fi ${docker} exec -it -w "${workdir}" "${container}" container "${cmd}"