From 0a2fdf47b38676536fdfd3e04efb51afc013b584 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Fri, 12 Mar 2021 18:00:39 +0100 Subject: [PATCH] Add OS agent (#1269) * Add OS Agent * Do go vendoring as part of the buildroot build * Allow to skip confirmation in datactl --- buildroot-external/Config.in | 1 + buildroot-external/configs/rpi4_64_defconfig | 1 + buildroot-external/package/os-agent/Config.in | 4 +++ .../package/os-agent/os-agent.mk | 27 +++++++++++++++++++ .../rootfs-overlay/usr/bin/datactl | 14 +++++----- 5 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 buildroot-external/package/os-agent/Config.in create mode 100644 buildroot-external/package/os-agent/os-agent.mk diff --git a/buildroot-external/Config.in b/buildroot-external/Config.in index dc2248fae..a8b7923f6 100644 --- a/buildroot-external/Config.in +++ b/buildroot-external/Config.in @@ -6,3 +6,4 @@ source "$BR2_EXTERNAL_HASSOS_PATH/package/qemu-guest-agent/Config.in" source "$BR2_EXTERNAL_HASSOS_PATH/package/intel-e1000e/Config.in" source "$BR2_EXTERNAL_HASSOS_PATH/package/rpi-eeprom/Config.in" source "$BR2_EXTERNAL_HASSOS_PATH/package/rtl8812au/Config.in" +source "$BR2_EXTERNAL_HASSOS_PATH/package/os-agent/Config.in" diff --git a/buildroot-external/configs/rpi4_64_defconfig b/buildroot-external/configs/rpi4_64_defconfig index e3e00d098..9eca975b1 100644 --- a/buildroot-external/configs/rpi4_64_defconfig +++ b/buildroot-external/configs/rpi4_64_defconfig @@ -39,6 +39,7 @@ BR2_PACKAGE_JQ=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_SQUASHFS=y +BR2_PACKAGE_OS_AGENT=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_RPI_FIRMWARE=y diff --git a/buildroot-external/package/os-agent/Config.in b/buildroot-external/package/os-agent/Config.in new file mode 100644 index 000000000..db98507b3 --- /dev/null +++ b/buildroot-external/package/os-agent/Config.in @@ -0,0 +1,4 @@ +config BR2_PACKAGE_OS_AGENT + bool "Home Assistant OS Agent" + help + Install the Home Assistant OS Agent diff --git a/buildroot-external/package/os-agent/os-agent.mk b/buildroot-external/package/os-agent/os-agent.mk new file mode 100644 index 000000000..be0e0e32a --- /dev/null +++ b/buildroot-external/package/os-agent/os-agent.mk @@ -0,0 +1,27 @@ +################################################################################ +# +# foo +# +################################################################################ + +OS_AGENT_VERSION = 0cb548c6acfb7e0a9542e6c85ffbce626af04cce +OS_AGENT_SITE = $(call github,home-assistant,os-agent,$(OS_AGENT_VERSION)) +OS_AGENT_LICENSE = Apache License 2.0 +OS_AGENT_LICENSE_FILES = LICENSE +OS_AGENT_GOMOD = github.com/home-assistant/os-agent + +define OS_AGENT_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 0644 $(@D)/contrib/io.homeassistant.conf \ + $(TARGET_DIR)/etc/dbus-1/system.d/io.homeassistant.conf + $(INSTALL) -D -m 0644 $(@D)/contrib/haos-agent.service \ + $(TARGET_DIR)/usr/lib/systemd/system/haos-agent.service +endef + +define OS_AGENT_GO_VENDORING + (cd $(@D); \ + $(HOST_DIR)/bin/go mod vendor) +endef + +OS_AGENT_POST_PATCH_HOOKS += OS_AGENT_GO_VENDORING + +$(eval $(golang-package)) diff --git a/buildroot-external/rootfs-overlay/usr/bin/datactl b/buildroot-external/rootfs-overlay/usr/bin/datactl index 152b942f3..594b5c63d 100755 --- a/buildroot-external/rootfs-overlay/usr/bin/datactl +++ b/buildroot-external/rootfs-overlay/usr/bin/datactl @@ -28,12 +28,14 @@ if [ "${1}" = "move" ] && [ -e "${2}" ]; then fi # Flag device - echo "WARNING: All partitions on ${NEW_DEVICE_ROOT} will be deleted!" - printf "Enter \"yes\" to confirm: " - read -r confirm - if [ "${confirm}" != "yes" ]; then - echo "Aborting." - exit 1 + if [ -z "${DATACTL_NOCONFIRM}" ]; then + echo "WARNING: All partitions on ${NEW_DEVICE_ROOT} will be deleted!" + printf "Enter \"yes\" to confirm: " + read -r confirm + if [ "${confirm}" != "yes" ]; then + echo "Aborting." + exit 1 + fi fi # Create GPT partition table with a single data partition