🎨 Sync 2026-06-07 18:17:40

This commit is contained in:
github-actions[bot] committed 2026-06-07 18:17:40 +08:00
1 parent 31e511aff8
commit 71aabc1bca
307 files changed
+14316 -109882

No files matched your search

+13 -1
View File
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=gecoosac
PKG_VERSION:=2.2.20251015
PKG_RELEASE:=1
PKG_RELEASE:=2
ifeq ($(ARCH),aarch64)
PKG_ARCH:=ac_linux_arm64
@@ -44,12 +44,24 @@ define Package/$(PKG_NAME)
DEPENDS:=@(aarch64||arm||i386||mips||mipsel||x86_64)
endef
define Package/$(PKG_NAME)/conffiles
/etc/config/gecoosac
/etc/gecoosac/
endef
define Build/Compile
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/bin
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/etc/init.d/gecoosac $(1)/etc/init.d/gecoosac
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/etc/config/gecoosac $(1)/etc/config/gecoosac
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/etc/uci-defaults/gecoosac $(1)/etc/uci-defaults/gecoosac
$(INSTALL_DIR) $(1)/etc/gecoosac/tls
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
+15
View File
@@ -0,0 +1,15 @@
config gecoosac 'config'
option enabled '0'
option port '60650'
option isonlyoneprot '0'
option m_port '8080'
option https '0'
option crt_file '/etc/gecoosac/tls/gecoosac.crt'
option key_file '/etc/gecoosac/tls/gecoosac.key'
option upload_dir '/tmp/gecoosac/upload/'
option db_dir '/etc/gecoosac/'
option piddir '/var/run/'
option lang 'zh'
option debug '0'
option showtip '1'
option log '0'
+136
View File
@@ -0,0 +1,136 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2024 ImmortalWrt
. /lib/functions.sh
. /lib/functions/procd.sh
USE_PROCD=1
START=90
STOP=10
PROG=/usr/bin/gecoosac
DEFAULT_DB_DIR=/etc/gecoosac/
DEFAULT_UPLOAD_DIR=/tmp/gecoosac/upload/
DEFAULT_CRT_FILE=/etc/gecoosac/tls/gecoosac.crt
DEFAULT_KEY_FILE=/etc/gecoosac/tls/gecoosac.key
DEFAULT_PID_DIR=/var/run/
DEFAULT_LANG=zh
init_conf() {
config_load "gecoosac"
config_get "db_dir" "config" "db_dir" "$DEFAULT_DB_DIR"
config_get "upload_dir" "config" "upload_dir" "$DEFAULT_UPLOAD_DIR"
config_get "enabled" "config" "enabled" "0"
config_get "port" "config" "port" "60650"
config_get "isonlyoneprot" "config" "isonlyoneprot" "0"
config_get "m_port" "config" "m_port" "8080"
config_get "https" "config" "https" "0"
config_get "crt_file" "config" "crt_file" "$DEFAULT_CRT_FILE"
config_get "key_file" "config" "key_file" "$DEFAULT_KEY_FILE"
config_get "piddir" "config" "piddir" "$DEFAULT_PID_DIR"
config_get "lang" "config" "lang" "$DEFAULT_LANG"
config_get "debug" "config" "debug" "0"
config_get "showtip" "config" "showtip" "1"
config_get "log" "config" "log" "0"
}
is_abs_path() {
case "$1" in
/*) return 0 ;;
*) return 1 ;;
esac
}
is_port() {
case "$1" in
""|*[!0-9]*) return 1 ;;
esac
[ "$1" -ge 1 ] 2>/dev/null && [ "$1" -le 65535 ]
}
normalize_conf() {
is_abs_path "$upload_dir" || upload_dir="$DEFAULT_UPLOAD_DIR"
is_abs_path "$db_dir" || db_dir="$DEFAULT_DB_DIR"
is_abs_path "$crt_file" || crt_file="$DEFAULT_CRT_FILE"
is_abs_path "$key_file" || key_file="$DEFAULT_KEY_FILE"
is_abs_path "$piddir" && [ "$piddir" != "/" ] || piddir="$DEFAULT_PID_DIR"
is_port "$port" || port="60650"
is_port "$m_port" || m_port="8080"
[ "$enabled" = "1" ] || enabled="0"
[ "$isonlyoneprot" = "1" ] || isonlyoneprot="0"
[ "$https" = "1" ] || https="0"
case "$lang" in
zh|en) ;;
*) lang="$DEFAULT_LANG" ;;
esac
[ "$debug" = "1" ] || debug="0"
[ "$showtip" = "0" ] || showtip="1"
[ "$log" = "1" ] || log="0"
}
ensure_dirs() {
mkdir -p "$upload_dir" "$db_dir" "$piddir" /etc/gecoosac/tls
}
start_service() {
init_conf
normalize_conf
[ "$enabled" = "1" ] || return 0
if [ ! -x "$PROG" ]; then
logger -t gecoosac "program not found: $PROG"
return 1
fi
ensure_dirs
if [ "$isonlyoneprot" = "0" ] && [ "$https" = "1" ]; then
if [ ! -r "$crt_file" ] || [ ! -r "$key_file" ]; then
logger -t gecoosac "HTTPS is enabled but certificate or key file is missing"
return 1
fi
fi
procd_open_instance gecoosac
procd_set_param command "$PROG"
procd_append_param command -f "$upload_dir"
procd_append_param command -p "$port"
procd_append_param command -debug "$debug"
procd_append_param command -dbpath "$db_dir"
procd_append_param command -token "1"
procd_append_param command -lang "$lang"
procd_append_param command -piddir "$piddir"
if [ "$isonlyoneprot" = "0" ]; then
procd_append_param command -isonlyoneprot "0"
procd_append_param command -mp "$m_port"
if [ "$https" = "1" ]; then
procd_append_param command -https "1"
procd_append_param command -crt "$crt_file"
procd_append_param command -key "$key_file"
else
procd_append_param command -https "0"
fi
else
procd_append_param command -isonlyoneprot "1"
fi
procd_append_param command -showtip "$showtip"
procd_set_param env GIN_MODE=release
procd_set_param file /etc/config/gecoosac
procd_set_param pidfile "${piddir%/}/gecoosac.pid"
procd_set_param stdout "$log"
procd_set_param stderr "$log"
procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
procd_close_instance
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger "gecoosac"
}
+39
View File
@@ -0,0 +1,39 @@
#!/bin/sh
changed=0
ensure_section() {
uci -q get gecoosac.config >/dev/null && return 0
uci -q set gecoosac.config=gecoosac
changed=1
}
set_default() {
local option="$1"
local value="$2"
uci -q get "gecoosac.config.${option}" >/dev/null && return 0
uci -q set "gecoosac.config.${option}=${value}"
changed=1
}
ensure_section
set_default enabled 0
set_default port 60650
set_default isonlyoneprot 0
set_default m_port 8080
set_default https 0
set_default crt_file /etc/gecoosac/tls/gecoosac.crt
set_default key_file /etc/gecoosac/tls/gecoosac.key
set_default upload_dir /tmp/gecoosac/upload/
set_default db_dir /etc/gecoosac/
set_default piddir /var/run/
set_default lang zh
set_default debug 0
# Preserve the previous package behavior for upgraded configs that never had showtip.
set_default showtip 0
set_default log 0
[ "$changed" = "1" ] && uci -q commit gecoosac
exit 0