diff --git a/custom_deps/CHANGELOG.md b/custom_deps/CHANGELOG.md new file mode 100644 index 0000000..f2e6384 --- /dev/null +++ b/custom_deps/CHANGELOG.md @@ -0,0 +1,4 @@ +# Changelog + +## 0.1 +- Initial release diff --git a/custom_deps/Dockerfile b/custom_deps/Dockerfile new file mode 100644 index 0000000..8709299 --- /dev/null +++ b/custom_deps/Dockerfile @@ -0,0 +1,15 @@ +ARG BUILD_FROM +FROM $BUILD_FROM + +# Add env +ENV LANG C.UTF-8 + +# Setup base +RUN apk add --no-cache \ + jq python3 gcc g++ make cmake git python3-dev + +# Copy data +COPY run.sh / +RUN chmod a+x /run.sh + +CMD [ "/run.sh" ] diff --git a/custom_deps/config.json b/custom_deps/config.json new file mode 100644 index 0000000..dcba0ce --- /dev/null +++ b/custom_deps/config.json @@ -0,0 +1,19 @@ +{ + "name": "Custom deps deployment", + "version": "0.1", + "slug": "custom_deps", + "description": "Manage custom python modules in Home Assistant deps", + "url": "https://home-assistant.io/addons/custom_deps/", + "startup": "once", + "boot": "manual", + "map": ["config:rw"], + "options": { + "pypi": [], + "apk": [] + }, + "schema": { + "pypi": ["str"], + "apk": ["str"] + }, + "image": "homeassistant/{arch}-addon-custom_deps" +} diff --git a/custom_deps/logo.png b/custom_deps/logo.png new file mode 100644 index 0000000..bbc2738 Binary files /dev/null and b/custom_deps/logo.png differ diff --git a/custom_deps/run.sh b/custom_deps/run.sh new file mode 100644 index 0000000..7a63044 --- /dev/null +++ b/custom_deps/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +set -e + +CONFIG_PATH=/data/options.json + +PYPI=$(jq --raw-output ".pypi[]" $CONFIG_PATH) +APK=$(jq --raw-output ".apk[] // empy" $CONFIG_PATH) + +# Cleanup old deps +echo "[Info] Remove old deps" +rm -rf /config/deps/* + +# Need custom apk for build? +if [ ! -z "$APK" ]; then + echo "[Info] Install apks for build" + if ! ERROR="$(apk add --no-cache "${APK[@]}")"; then + echo "[Error] Can't install packages!" + echo "$ERROR" && exit 1 + fi +fi + +# Install pypi modules +echo "[Info] Install pypi modules into deps" +export PYTHONUSERBASE=/config/deps +if ! ERROR="$(pip3 install --user --no-cache-dir --no-dependencies "${PYPI[@]}")"; then + echo "[Error] Can't install pypi packages!" + echo "$ERROR" && exit 1 +fi + +echo "[Info] done"