ootoc: sync with upstream source

This commit is contained in:
CN_SZTL 2020-03-11 21:34:39 +08:00
parent d55d9ed266
commit c317bca259
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
3 changed files with 112 additions and 3 deletions

View File

@ -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))

View File

@ -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'

View File

@ -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"
}