include $(TOPDIR)/rules.mk

PKG_NAME:=uniberg-uconfigd
PKG_VERSION:=$(shell git show -s --format=%cd --date=short)
PKG_RELEASE:=1

PKG_BUILD_PARALLEL:=1

PKG_FILE_DEPENDS:=$(CURDIR)/src

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk

define Build/Prepare
	mkdir -p $(PKG_BUILD_DIR)
	cp -R $(CURDIR)/src/* $(PKG_BUILD_DIR)
endef

define Package/uniberg-uconfigd
  SECTION:=net
  CATEGORY:=Network
  DEPENDS:=+libubox +libubus +libblobmsg-json +uconfig +libcurl +ucode
  TITLE:=Uniberg uconfig Daemon
endef

define Package/uniberg-uconfigd/conffiles
/etc/uconfig/uconfig.active
endef

define Package/uniberg-uconfigd/install
	$(INSTALL_DIR) $(1)/sbin $(1)/lib/uniberg/uconfigd/scripts $(1)/etc/uci-defaults $(1)/etc/init.d $(1)/lib/uniberg/build $(1)/usr/bin $(1)/lib/uniberg/uconfigd/.ssh $(1)/lib/upgrade/keep.d
	$(CP) $(PKG_BUILD_DIR)/uniberg-uconfigd $(1)/sbin/
	$(INSTALL_BIN) ./files/get-label-mac.sh $(1)/lib/uniberg/uconfigd/scripts/get-label-mac.sh
	$(INSTALL_BIN) ./files/subscribe-ap.sh $(1)/lib/uniberg/uconfigd/scripts/subscribe-ap.sh
	$(INSTALL_BIN) ./files/config-apply.sh $(1)/lib/uniberg/uconfigd/scripts/config-apply.sh
	$(INSTALL_BIN) ./files/config-confirm.sh $(1)/lib/uniberg/uconfigd/scripts/config-confirm.sh
	$(INSTALL_BIN) ./files/90-uci-defaults.sh $(1)/etc/uci-defaults/90-uniberg-uconfigd.sh
	$(INSTALL_BIN) ./files/uconfigd.init $(1)/etc/init.d/uniberg-uconfigd

	$(INSTALL_BIN) ./files/subscription-object.uc $(1)/lib/uniberg/uconfigd/scripts/subscription-object.uc

	$(CP) ./files/uconfig-uniberg.sh $(1)/etc/uci-defaults/uconfig-uniberg

	$(INSTALL_BIN) ./files/watchdog/uconfigd-watchdog.sh $(1)/usr/bin/uconfigd-watchdog
	$(INSTALL_BIN) ./files/watchdog/uconfigd-watchdog.init $(1)/etc/init.d/uconfigd-watchdog

	$(CP) ./files/ssh/* $(1)/lib/uniberg/uconfigd/.ssh/
	chmod 700 $(1)/lib/uniberg/uconfigd/.ssh/
	chmod 600 $(1)/lib/uniberg/uconfigd/.ssh/*
	$(CP) files/uniberg-features.sh files/{remotecontrol,liveness}/*sh $(1)/usr/bin/
	$(CP) files/*/{uniberg-liveness,uniberg-remotecontrol} $(1)/etc/init.d/

	$(CP) ./files/motd.txt $(1)/lib/uniberg/motd.txt
	echo -n "$(shell git show -s --format=%cd --date=short)" > $(1)/lib/uniberg/build/date
	echo -n "$(shell git rev-parse --short HEAD)" > $(1)/lib/uniberg/build/commit

	$(CP) ./files/keep-files $(1)/lib/upgrade/keep.d/uniberg-uconfigd
endef

$(eval $(call BuildPackage,uniberg-uconfigd))
