From c317bca259108b424a1cd34f82a8dfc9879cf908 Mon Sep 17 00:00:00 2001 From: CN_SZTL Date: Wed, 11 Mar 2020 21:34:39 +0800 Subject: [PATCH] ootoc: sync with upstream source --- package/ctcgfw/ootoc/Makefile | 8 ++- package/ctcgfw/ootoc/files/ootoc.conf | 13 ++++ package/ctcgfw/ootoc/files/ootoc.init | 94 +++++++++++++++++++++++++++ 3 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 package/ctcgfw/ootoc/files/ootoc.conf create mode 100755 package/ctcgfw/ootoc/files/ootoc.init diff --git a/package/ctcgfw/ootoc/Makefile b/package/ctcgfw/ootoc/Makefile index 48f64e5091..a79ad48790 100644 --- a/package/ctcgfw/ootoc/Makefile +++ b/package/ctcgfw/ootoc/Makefile @@ -15,8 +15,8 @@ PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/ElonH/ootoc.git -PKG_MIRROR_HASH:=39a62e478fd947b9ef4a45c39e7b1cd7a0abf14da5d7ea19eac562658851327c -PKG_SOURCE_VERSION:=ae2fcfaa0d3555638ce879a12e0bc7a21beea5a0 +PKG_MIRROR_HASH:=8a26f160c3314bde554e4094ba7f24376403a152bd8e796367f6807f365b792d +PKG_SOURCE_VERSION:=6bfbe253e8265c7aa7d5553e4dc4c752d5c23ac3 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz @@ -69,8 +69,10 @@ define Build/InstallDev endef define Package/ootoc/install - $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_DIR) $(1)/usr/bin $(1)/etc/init.d $(1)/etc/config $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ootocCLI $(1)/usr/bin/ + $(INSTALL_BIN) ./files/ootoc.init $(1)/etc/init.d/ootoc + $(INSTALL_DATA) ./files/ootoc.conf $(1)/etc/config/ootoc endef $(eval $(call BuildPackage,ootoc)) diff --git a/package/ctcgfw/ootoc/files/ootoc.conf b/package/ctcgfw/ootoc/files/ootoc.conf new file mode 100644 index 0000000000..1d4d7d85ba --- /dev/null +++ b/package/ctcgfw/ootoc/files/ootoc.conf @@ -0,0 +1,13 @@ + +config global 'global' + option enabled '0' + +config server 'server' + option addr '127.0.0.1' + option port '21730' + option tar_url 'https://github.com/ElonH/BuildOpenWRT/releases/download/1.1.0/latest-Packages.tar' + option aux_path '/var/etc/ootoc/latest-Packages.yml' + +config proxy 'proxy' + option enabled '0' + option proxy_addr 'socks5://127.0.0.1:1080' diff --git a/package/ctcgfw/ootoc/files/ootoc.init b/package/ctcgfw/ootoc/files/ootoc.init new file mode 100755 index 0000000000..d6aaf214ce --- /dev/null +++ b/package/ctcgfw/ootoc/files/ootoc.init @@ -0,0 +1,94 @@ +#!/bin/bash /etc/rc.common + +START=55 +STOP=55 + +USE_PROCD=1 +PROG=/usr/bin/ootocCLI + +_info() { + logger -p daemon.info -t "ootoc" "$*" +} + +_err() { + logger -p daemon.err -t "ootoc" "$*" +} + +init_conf() { + config_load "ootoc" + + local AUX LOG + config_get AUX server aux_path + config_get LOG log path + + # detect aux file exist + [ -d "${AUX%/*}" ] || mkdir -p "${AUX%/*}" 2>/dev/null + [ -f "$AUX" ] || { + echo "auxilary file not found: ${AUX}" + return 1 + } + + # backup opkg feeds conf + FEEDS="/etc/opkg/distfeeds.conf" + FEEDS_BAK="${FEEDS}.bak" + [ -d "${FEEDS%/*}" ] || mkdir -p "${FEEDS%/*}" 2>/dev/null + [ -e "$FEEDS_BAK" ] || { + _log "opkg feeds backup not exist '$FEEDS_BAK', backup now..." + [ -e "$FEEDS" ] || { + _err "not exist file: $FEEDS" + return 1 + } + cp -rf "$FEEDS" "$FEEDS_BAK" + } + + # create log path + [ -d "${LOG%/*}" ] || mkdir -p "${LOG%/*}" 2>/dev/null +} + +start_service() { + init_conf || return 1; + config_load "ootoc" + + local ENABLED ADDR PORT TAR AUX PROXY_ENABLED PROXY_ADDR + config_get ENABLED global enabled + config_get ADDR server addr + config_get PORT server port + config_get TAR server tar_url + config_get AUX server aux_path + config_get PROXY_ENABLED proxy enabled + config_get PROXY_ADDR proxy proxy_addr + + [[ $ENABLED == 0 ]] && { + _info "Instance 'ootoc' disabled." + return 1 + } + + $PROG subscription --addr "$ADDR" --port "$PORT" --url "$TAR" --aux "$AUX" --out "/etc/opkg/distfeeds.conf" >/dev/null + + procd_open_instance + procd_set_param command $PROG server + procd_append_param command --addr "$ADDR" + procd_append_param command --port "$PORT" + procd_append_param command --url "$TAR" + procd_append_param command --aux "$AUX" + [[ $PROXY_ENABLED == 1 ]] && { + procd_set_param env all_proxy="$PROXY_ADDR" https_proxy="$PROXY_ADDR" http_proxy="$PROXY_ADDR" + procd_set_param env ALL_PROXY="$PROXY_ADDR" HTTPS_PROXY="$PROXY_ADDR" HTTP_PROXY="$PROXY_ADDR" + } + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_set_param file /etc/config/ootoc + procd_set_param pidfile /var/run/ootoc.pid + procd_set_param respawn retry=60 + procd_close_instance +} + +stop_service() +{ + service_stop ${PROG} +} + +service_triggers() +{ + procd_add_reload_trigger "ootoc" +}