v0.13.9-ha_addon
This commit is contained in:
Executable
+48
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
CONFIG="$SCRIPT_DIR/repository/gree-controller/config.yaml"
|
||||
LOCKFILE="$PROJECT_ROOT/Cargo.lock"
|
||||
|
||||
REGISTRY="${REGISTRY:-oci.linuxiarz.pl}"
|
||||
IMAGE_NAME="${IMAGE_NAME:-gree-controller}"
|
||||
VERSION="$(awk -F '"' '/^version = "/ {print $2; exit}' "$PROJECT_ROOT/Cargo.toml")"
|
||||
[[ -n "$VERSION" ]] || { echo "Cannot determine version from Cargo.toml" >&2; exit 1; }
|
||||
|
||||
IMAGE_REPO="${REGISTRY%/}/${IMAGE_NAME#/}"
|
||||
|
||||
python3 - "$CONFIG" "$LOCKFILE" "$VERSION" "$IMAGE_REPO" <<'PY2'
|
||||
from pathlib import Path
|
||||
import re
|
||||
import sys
|
||||
|
||||
config = Path(sys.argv[1])
|
||||
lockfile = Path(sys.argv[2])
|
||||
version = sys.argv[3]
|
||||
image = sys.argv[4]
|
||||
|
||||
# Home Assistant metadata is generated from the single version source: Cargo.toml.
|
||||
lines = config.read_text(encoding="utf-8").splitlines()
|
||||
out = []
|
||||
for line in lines:
|
||||
if line.startswith("version:"):
|
||||
out.append(f'version: "{version}"')
|
||||
elif line.startswith("image:"):
|
||||
out.append(f'image: "{image}"')
|
||||
else:
|
||||
out.append(line)
|
||||
config.write_text("\n".join(out) + "\n", encoding="utf-8")
|
||||
|
||||
# Keep Cargo.lock in sync so `cargo build --locked` remains usable after a version bump.
|
||||
lock = lockfile.read_text(encoding="utf-8")
|
||||
pattern = r'(\[\[package\]\]\nname = "gree-controller"\nversion = ")[^"]+("\n)'
|
||||
updated, count = re.subn(pattern, rf'\g<1>{version}\g<2>', lock, count=1)
|
||||
if count != 1:
|
||||
raise SystemExit("Could not find gree-controller package version in Cargo.lock")
|
||||
lockfile.write_text(updated, encoding="utf-8")
|
||||
PY2
|
||||
|
||||
printf 'Synced version %s -> Cargo.lock + Home Assistant metadata; image %s:%s\n' \
|
||||
"$VERSION" "$IMAGE_REPO" "$VERSION"
|
||||
Reference in New Issue
Block a user