diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/home-assistant/update.sh')
-rwxr-xr-x | nixpkgs/pkgs/servers/home-assistant/update.sh | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/home-assistant/update.sh b/nixpkgs/pkgs/servers/home-assistant/update.sh new file mode 100755 index 00000000000..11189cf3577 --- /dev/null +++ b/nixpkgs/pkgs/servers/home-assistant/update.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env nix-shell +#!nix-shell -p nix -p jq -p curl -p bash -p git -p nix-update -i bash + +set -eux + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +cd "$DIR" + +CURRENT_VERSION=$(nix eval --raw '(with import ../../.. {}; home-assistant.version)') +TARGET_VERSION=$(curl https://api.github.com/repos/home-assistant/core/releases/latest | jq -r '.name') +MANIFEST=$(curl https://raw.githubusercontent.com/home-assistant/core/${TARGET_VERSION}/homeassistant/components/frontend/manifest.json) +FRONTEND_VERSION=$(echo $MANIFEST | jq -r '.requirements[] | select(startswith("home-assistant-frontend")) | sub(".*==(?<vers>.*)"; .vers)') + +if [[ "$CURRENT_VERSION" == "$TARGET_VERSION" ]]; then + echo "home-assistant is up-to-date: ${CURRENT_VERSION}" + exit 0 +fi + + +sed -i -e "s/version =.*/version = \"${TARGET_VERSION}\";/" \ + component-packages.nix + +sed -i -e "s/hassVersion =.*/hassVersion = \"${TARGET_VERSION}\";/" \ + default.nix + +./parse-requirements.py +( + cd ../../.. + nix-update --version "$FRONTEND_VERSION" home-assistant.hass-frontend + nix-update --version "$TARGET_VERSION" --build home-assistant +) + +git add ./component-packages.nix ./default.nix ./frontend.nix +git commit -m "homeassistant: ${CURRENT_VERSION} -> ${TARGET_VERSION}" |