Convert addon configs to yaml (#52)

This commit is contained in:
Jesse Hills 2022-03-24 17:23:36 +13:00 committed by GitHub
parent 7d2181c51f
commit ef509b3fb6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 118 additions and 144 deletions

View File

@ -1,44 +0,0 @@
{
"advanced": true,
"arch": [
"amd64",
"armv7",
"aarch64"
],
"auth_api": true,
"backup_exclude": [
"*/*/"
],
"description": "Beta version of ESPHome add-on",
"hassio_api": true,
"host_network": true,
"image": "ghcr.io/esphome/esphome-hassio-{arch}",
"ingress": true,
"ingress_port": 0,
"map": [
"ssl:ro",
"config:rw"
],
"name": "ESPHome (beta)",
"panel_icon": "mdi:chip",
"ports": {
"6052/tcp": null
},
"ports_description": {
"6052/tcp": "Web interface (not required for Home Assistant ingress)"
},
"schema": {
"certfile": "str?",
"keyfile": "str?",
"leave_front_door_open": "bool?",
"relative_url": "str?",
"ssl": "bool?",
"status_use_ping": "bool?",
"streamer_mode": "bool?"
},
"slug": "esphome-beta",
"stage": "experimental",
"uart": true,
"url": "https://beta.esphome.io/",
"version": "2022.3.1"
}

37
esphome-beta/config.yaml Normal file
View File

@ -0,0 +1,37 @@
---
advanced: true
arch:
- amd64
- armv7
- aarch64
auth_api: true
backup_exclude:
- '*/*/'
description: Beta version of ESPHome add-on
hassio_api: true
host_network: true
image: ghcr.io/esphome/esphome-hassio-{arch}
ingress: true
ingress_port: 0
map:
- ssl:ro
- config:rw
name: ESPHome (beta)
panel_icon: mdi:chip
ports:
6052/tcp: null
ports_description:
6052/tcp: Web interface (not required for Home Assistant ingress)
schema:
certfile: str?
keyfile: str?
leave_front_door_open: bool?
relative_url: str?
ssl: bool?
status_use_ping: bool?
streamer_mode: bool?
slug: esphome-beta
stage: experimental
uart: true
url: https://beta.esphome.io/
version: 2022.3.1

View File

@ -1,7 +0,0 @@
{
"build_from": {
"aarch64": "ghcr.io/esphome/esphome-hassio-aarch64:dev",
"amd64": "ghcr.io/esphome/esphome-hassio-amd64:dev",
"armv7": "ghcr.io/esphome/esphome-hassio-armv7:dev"
}
}

5
esphome-dev/build.yaml Normal file
View File

@ -0,0 +1,5 @@
---
build_from:
aarch64: ghcr.io/esphome/esphome-hassio-aarch64:dev
amd64: ghcr.io/esphome/esphome-hassio-amd64:dev
armv7: ghcr.io/esphome/esphome-hassio-armv7:dev

View File

@ -1,44 +0,0 @@
{
"advanced": true,
"arch": [
"amd64",
"armv7",
"aarch64"
],
"auth_api": true,
"backup_exclude": [
"*/*/"
],
"description": "Development version of ESPHome add-on",
"hassio_api": true,
"host_network": true,
"ingress": true,
"ingress_port": 0,
"map": [
"ssl:ro",
"config:rw"
],
"name": "ESPHome (dev)",
"panel_icon": "mdi:chip",
"ports": {
"6052/tcp": null
},
"ports_description": {
"6052/tcp": "Web interface (not required for Home Assistant ingress)"
},
"schema": {
"certfile": "str?",
"esphome_fork": "str?",
"keyfile": "str?",
"leave_front_door_open": "bool?",
"relative_url": "str?",
"ssl": "bool?",
"status_use_ping": "bool?",
"streamer_mode": "bool?"
},
"slug": "esphome-dev",
"stage": "experimental",
"uart": true,
"url": "https://next.esphome.io/",
"version": "dev"
}

37
esphome-dev/config.yaml Normal file
View File

@ -0,0 +1,37 @@
---
advanced: true
arch:
- amd64
- armv7
- aarch64
auth_api: true
backup_exclude:
- '*/*/'
description: Development version of ESPHome add-on
hassio_api: true
host_network: true
ingress: true
ingress_port: 0
map:
- ssl:ro
- config:rw
name: ESPHome (dev)
panel_icon: mdi:chip
ports:
6052/tcp: null
ports_description:
6052/tcp: Web interface (not required for Home Assistant ingress)
schema:
certfile: str?
esphome_fork: str?
keyfile: str?
leave_front_door_open: bool?
relative_url: str?
ssl: bool?
status_use_ping: bool?
streamer_mode: bool?
slug: esphome-dev
stage: experimental
uart: true
url: https://next.esphome.io/
version: dev

View File

@ -1,42 +0,0 @@
{
"arch": [
"amd64",
"armv7",
"aarch64"
],
"auth_api": true,
"backup_exclude": [
"*/*/"
],
"description": "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices",
"hassio_api": true,
"host_network": true,
"image": "ghcr.io/esphome/esphome-hassio-{arch}",
"ingress": true,
"ingress_port": 0,
"map": [
"ssl:ro",
"config:rw"
],
"name": "ESPHome",
"panel_icon": "mdi:chip",
"ports": {
"6052/tcp": null
},
"ports_description": {
"6052/tcp": "Web interface (not required for Home Assistant ingress)"
},
"schema": {
"certfile": "str?",
"keyfile": "str?",
"leave_front_door_open": "bool?",
"relative_url": "str?",
"ssl": "bool?",
"status_use_ping": "bool?",
"streamer_mode": "bool?"
},
"slug": "esphome",
"uart": true,
"url": "https://esphome.io/",
"version": "2022.3.1"
}

35
esphome/config.yaml Normal file
View File

@ -0,0 +1,35 @@
---
arch:
- amd64
- armv7
- aarch64
auth_api: true
backup_exclude:
- '*/*/'
description: ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices
hassio_api: true
host_network: true
image: ghcr.io/esphome/esphome-hassio-{arch}
ingress: true
ingress_port: 0
map:
- ssl:ro
- config:rw
name: ESPHome
panel_icon: mdi:chip
ports:
6052/tcp: null
ports_description:
6052/tcp: Web interface (not required for Home Assistant ingress)
schema:
certfile: str?
keyfile: str?
leave_front_door_open: bool?
relative_url: str?
ssl: bool?
status_use_ping: bool?
streamer_mode: bool?
slug: esphome
uart: true
url: https://esphome.io/
version: 2022.3.1

View File

@ -4,7 +4,6 @@ import argparse
import yaml import yaml
from pathlib import Path from pathlib import Path
from enum import Enum from enum import Enum
import json
from shutil import copyfile from shutil import copyfile
import sys import sys
@ -34,9 +33,9 @@ def main(args):
conf = config[f"esphome-{channel.value}"] conf = config[f"esphome-{channel.value}"]
base_image = conf.pop("base_image", None) base_image = conf.pop("base_image", None)
dir_ = root / conf.pop("directory") dir_ = root / conf.pop("directory")
path = dir_ / "config.json" path = dir_ / "config.yaml"
with open(path, "w") as f: with open(path, "w") as f:
json.dump(conf, f, indent=2, sort_keys=True) yaml.dump(conf, f, indent=2, sort_keys=True, explicit_start=True)
for file_, conf_ in copyf.items(): for file_, conf_ in copyf.items():
if Path.exists(templ / channel.value / file_): if Path.exists(templ / channel.value / file_):
@ -49,16 +48,14 @@ def main(args):
f.write("Any edits should be made to the files in the 'template' directory") f.write("Any edits should be made to the files in the 'template' directory")
if channel == Channel.dev: if channel == Channel.dev:
path = dir_ / "build.json" path = dir_ / "build.yaml"
build_conf = { build_conf = {
"build_from": { "build_from": {
arch: base_image.format(arch=arch) for arch in conf["arch"] arch: base_image.format(arch=arch) for arch in conf["arch"]
} }
} }
with open(path, "w") as f: with open(path, "w") as f:
json.dump(build_conf, f, indent=2, sort_keys=True) yaml.dump(build_conf, f, indent=2, sort_keys=True, explicit_start=True)
print(f"Wrote {path}")
if __name__ == "__main__": if __name__ == "__main__":