#!/bin/sh /etc/rc.common # # Copyright (C) 2021-2026 sirpdboy # # This file is part of ddns-go . # # This is free software, licensed under the Apache License, Version 2.0 . # START=99 USE_PROCD=1 NAME=ddns-go PROG=/usr/bin/ddns-go CONFDIR=/etc/ddns-go CONF=$CONFDIR/ddns-go-config.yaml init_yaml() { [ -d "$CONFDIR" ] || mkdir -p "$CONFDIR" chown -R ddns-go:ddns-go "$CONFDIR" chmod 755 "$CONFDIR" [ -f "$CONF" ] && chmod 644 "$CONF" } build_args() { local cfg="$1" local args="-c $CONF" config_get port "$cfg" port '9876' args="$args -l :$port" config_get time "$cfg" time '300' [ -n "$time" ] && args="$args -f $time" config_get ctimes "$cfg" ctimes '5' [ -n "$ctimes" ] && args="$args -cacheTimes $ctimes" config_get dns "$cfg" dns '223.5.5.5' [ -n "$dns" ] && args="$args -dns $dns" config_get_bool noweb "$cfg" noweb 0 [ "$noweb" -eq 1 ] && args="$args -noweb" config_get_bool skipverify "$cfg" skipverify 0 [ "$skipverify" -eq 1 ] && args="$args -skipVerify" echo "$args" } start_instance() { local cfg="$1" config_get_bool enabled "$cfg" enabled 0 [ "$enabled" -eq 0 ] && return 0 config_get delay "$cfg" delay 0 if [ "$delay" -gt 0 ]; then local uptime=$(awk -F. '{print $1}' /proc/uptime) [ "$uptime" -lt 120 ] && sleep "$delay" fi init_yaml local args=$(build_args "$cfg") procd_open_instance procd_set_param command $PROG $args procd_set_param stdout 1 procd_set_param stderr 1 procd_set_param log_level 7 procd_set_param user ddns-go procd_set_param respawn procd_close_instance } start_service() { config_load "$NAME" config_foreach start_instance 'basic' } service_triggers() { procd_add_reload_trigger "$NAME" }