ddns-scripts: update freedns.42.pl to json
authorFlorian Eckert <fe@dev.tdt.de>
Fri, 18 Sep 2020 08:59:31 +0000 (10:59 +0200)
committerFlorian Eckert <fe@dev.tdt.de>
Mon, 21 Sep 2020 08:17:01 +0000 (10:17 +0200)
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
net/ddns-scripts/Makefile
net/ddns-scripts/files/update_freedns_42_pl.sh [deleted file]
net/ddns-scripts/files/usr/lib/ddns/update_freedns_42_pl.sh [new file with mode: 0644]
net/ddns-scripts/files/usr/share/ddns/services/freedns.42.pl.json [new file with mode: 0644]

index c0284f61d83e11e439c46ff3d7656253547a5772..11e14032b6b1dc43671d8d07e191f84c2f91abf6 100755 (executable)
@@ -280,15 +280,17 @@ endef
 define Package/ddns-scripts_freedns_42_pl/install
        $(INSTALL_DIR) $(1)/etc/uci-defaults
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_freedns_42_pl
+
        $(INSTALL_DIR) $(1)/usr/lib/ddns
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_freedns_42_pl.sh $(1)/usr/lib/ddns
+       $(INSTALL_BIN) ./files/usr/lib/ddns/update_freedns_42_pl.sh \
+               $(1)/usr/lib/ddns
+
+       $(INSTALL_DIR) $(1)/usr/share/ddns/services
+       $(INSTALL_DATA) ./files/usr/share/ddns/services/freedns.42.pl.json \
+               $(1)/usr/share/ddns/services
 endef
 define Package/ddns-scripts_freedns_42_pl/postinst
        #!/bin/sh
-       # remove old services file entries
-       /bin/sed -i '/freedns\.42\.pl/d' $${IPKG_INSTROOT}/etc/ddns/services    >/dev/null 2>&1
-       # and create new
-       printf "%s\\t%s\\n" '"freedns.42.pl"' '"update_freedns_42_pl.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
        # on real system restart service if enabled
        [ -z "$${IPKG_INSTROOT}" ] && {
                [ -x /etc/uci-defaults/ddns_freedns_42_pl ] && \
@@ -303,8 +305,6 @@ define Package/ddns-scripts_freedns_42_pl/prerm
        #!/bin/sh
        # if NOT run buildroot then stop service
        [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop             >/dev/null 2>&1
-       # remove services file entries
-       /bin/sed -i '/freedns\.42\.pl/d' $${IPKG_INSTROOT}/etc/ddns/services    >/dev/null 2>&1
        exit 0  # suppress errors
 endef
 
diff --git a/net/ddns-scripts/files/update_freedns_42_pl.sh b/net/ddns-scripts/files/update_freedns_42_pl.sh
deleted file mode 100755 (executable)
index f0e9197..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#.Distributed under the terms of the GNU General Public License (GPL) version 2.0
-#.2018 Michal Lipka <michal at sysadmin dot care>
-local __DUMMY
-local __URL="https://freedns.42.pl/xmlrpc.php"
-[ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing 'username'"
-[ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing 'password'"
-[ $ip_dynamic -eq 1 ] && __IP='\&lt;dynamic\&gt;'
-PROG="$(command -v curl) -sk"
-write_log 7 "sending update to freedns.42.pl with ip $__IP"
-XMLDATA="<?xml version='1.0'?><methodCall><methodName>xname.updateArecord</methodName><params><param><value><struct><member><name>name</name><value><string>[RECORDNAME]</string></value></member><member><name>zone</name><value><string>[ZONENAME]</string></value></member><member><name>oldaddress</name><value><string>*</string></value></member><member><name>updatereverse</name><value><string>0</string></value></member><member><name>user</name><value><string>[USERNAME]</string></value></member><member><name>ttl</name><value><string>600</string></value></member><member><name>newaddress</name><value><string>[IP]</string></value></member><member><name>password</name><value><string>[PASSWORD]</string></value></member></struct></value></param></params></methodCall>"
-XMLDATA=$(echo $XMLDATA | sed -e "s#\[USERNAME\]#$URL_USER#g" -e "s#\[PASSWORD\]#$URL_PASS#g" \
--e "s#\[ZONENAME\]#$zone#g" -e "s#\[RECORDNAME\]#$record#g" -e "s#\[IP\]#$__IP#g")
-$PROG -d "$XMLDATA" -o $DATFILE $__URL || return 1
-write_log 7 "'freedns.42.pl' answered:${N}$(cat $DATFILE)"
-grep "<fault>" $DATFILE > /dev/null 2>&1 && return 1
-grep '<name>serial</name>' $DATFILE >/dev/null 2>&1
-return $?
diff --git a/net/ddns-scripts/files/usr/lib/ddns/update_freedns_42_pl.sh b/net/ddns-scripts/files/usr/lib/ddns/update_freedns_42_pl.sh
new file mode 100644 (file)
index 0000000..f0e9197
--- /dev/null
@@ -0,0 +1,17 @@
+#.Distributed under the terms of the GNU General Public License (GPL) version 2.0
+#.2018 Michal Lipka <michal at sysadmin dot care>
+local __DUMMY
+local __URL="https://freedns.42.pl/xmlrpc.php"
+[ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing 'username'"
+[ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing 'password'"
+[ $ip_dynamic -eq 1 ] && __IP='\&lt;dynamic\&gt;'
+PROG="$(command -v curl) -sk"
+write_log 7 "sending update to freedns.42.pl with ip $__IP"
+XMLDATA="<?xml version='1.0'?><methodCall><methodName>xname.updateArecord</methodName><params><param><value><struct><member><name>name</name><value><string>[RECORDNAME]</string></value></member><member><name>zone</name><value><string>[ZONENAME]</string></value></member><member><name>oldaddress</name><value><string>*</string></value></member><member><name>updatereverse</name><value><string>0</string></value></member><member><name>user</name><value><string>[USERNAME]</string></value></member><member><name>ttl</name><value><string>600</string></value></member><member><name>newaddress</name><value><string>[IP]</string></value></member><member><name>password</name><value><string>[PASSWORD]</string></value></member></struct></value></param></params></methodCall>"
+XMLDATA=$(echo $XMLDATA | sed -e "s#\[USERNAME\]#$URL_USER#g" -e "s#\[PASSWORD\]#$URL_PASS#g" \
+-e "s#\[ZONENAME\]#$zone#g" -e "s#\[RECORDNAME\]#$record#g" -e "s#\[IP\]#$__IP#g")
+$PROG -d "$XMLDATA" -o $DATFILE $__URL || return 1
+write_log 7 "'freedns.42.pl' answered:${N}$(cat $DATFILE)"
+grep "<fault>" $DATFILE > /dev/null 2>&1 && return 1
+grep '<name>serial</name>' $DATFILE >/dev/null 2>&1
+return $?
diff --git a/net/ddns-scripts/files/usr/share/ddns/services/freedns.42.pl.json b/net/ddns-scripts/files/usr/share/ddns/services/freedns.42.pl.json
new file mode 100644 (file)
index 0000000..c04dc1d
--- /dev/null
@@ -0,0 +1,6 @@
+{
+       "name": "freedns.42.pl",
+       "ipv4": {
+               "url": "update_freedns_42_pl.sh"
+       }
+}