Browse Source

rpcd-mod-attendedsysupgrade: add package

add ubus call to perform a sysupgrade and acl file for the attended
sysupgrade use case as well uci defaults.
Package is a part of the GSoC 17 project implementing easy
sysupgrade functionality.

Signed-off-by: Paul Spooren <paul@spooren.de>
lilik-openwrt-22.03
Paul Spooren 8 years ago
parent
commit
f9a6c81c11
4 changed files with 112 additions and 0 deletions
  1. +44
    -0
      utils/rpcd-mod-attendedsysupgrade/Makefile
  2. +26
    -0
      utils/rpcd-mod-attendedsysupgrade/files/attendedsysupgrade.acl
  3. +13
    -0
      utils/rpcd-mod-attendedsysupgrade/files/attendedsysupgrade.defaults
  4. +29
    -0
      utils/rpcd-mod-attendedsysupgrade/files/attendedsysupgrade.rpcd

+ 44
- 0
utils/rpcd-mod-attendedsysupgrade/Makefile View File

@ -0,0 +1,44 @@
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=rpcd-mod-attendedsysupgrade
PKG_VERSION:=1
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0
include $(INCLUDE_DIR)/package.mk
define Package/rpcd-mod-attendedsysupgrade
SECTION:=utils
CATEGORY:=Base system
TITLE:=OpenWrt ubus RPC backend server (attendedsysupgrade)
MAINTAINER:=Paul Spooren <paul@spooren.de>
DEPENDS:=rpcd +cgi-io +rpcd-mod-packagelist
endef
define Package/rpcd-mod-attendedsysupgrade/description
implements sysupgrade function with ubus
add uci settings and needed acls
endef
define Build/Compile
endef
define Build/Configure
endef
define Package/rpcd-mod-attendedsysupgrade/install
$(INSTALL_DIR) $(1)/usr/share/rpcd/acl.d/
$(INSTALL_BIN) ./files/attendedsysupgrade.acl $(1)/usr/share/rpcd/acl.d/attendedsysupgrade.json
$(INSTALL_DIR) $(1)/usr/libexec/rpcd/
$(INSTALL_BIN) ./files/attendedsysupgrade $(1)/usr/libexec/rpcd/attendedsysupgrade
$(INSTALL_DIR) $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/attendedsysupgrade.defaults $(1)/etc/uci-defaults/attendedsysupgrade
endef
$(eval $(call BuildPackage,rpcd-mod-attendedsysupgrade))

+ 26
- 0
utils/rpcd-mod-attendedsysupgrade/files/attendedsysupgrade.acl View File

@ -0,0 +1,26 @@
{
"attendedsysupgrade": {
"description": "attended sysupgrade via rpcd",
"read": {
"ubus": {
"attendedsysupgrade": [
"sysupgrade"
],
"system": [
"board"
],
"uci": [
"get"
]
},
"uci": [
"*"
]
},
"write": {
"cgi-io": [
"upload"
]
}
}
}

+ 13
- 0
utils/rpcd-mod-attendedsysupgrade/files/attendedsysupgrade.defaults View File

@ -0,0 +1,13 @@
#!/bin/sh
[ -e /etc/config/attendedsysupgrade ] && exit 0
touch /etc/config/attendedsysupgrade
uci -q batch <<EOF
add attendedsysupgrade settings
set attendedsysupgrade.@settings[0].update_server=https://betaupdate.libremesh.org
commit attendedsysupgrade
EOF
exit 01

+ 29
- 0
utils/rpcd-mod-attendedsysupgrade/files/attendedsysupgrade.rpcd View File

@ -0,0 +1,29 @@
#!/bin/sh
. /usr/share/libubox/jshn.sh
case "$1" in
list)
json_init
json_add_object "sysupgrade"
json_close_object
json_dump
;;
call)
case "$2" in
sysupgrade)
if [ -f "/tmp/sysupgrade.bin" ]; then
/etc/init.d/uhttpd stop
/etc/init.d/dropbear stop
sleep 1;
/sbin/sysupgrade -c /tmp/sysupgrade.bin
fi
json_init
json_add_string "message" "could not find /tmp/sysupgrade.bin"
json_dump
esac
;;
esac

Loading…
Cancel
Save