mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-05 18:44:03 +08:00
🎨 Sync 2026-06-07 18:17:40
This commit is contained in:
1 parent
31e511aff8
commit
71aabc1bca
307 files changed
+14316
-109882
No files matched your search
+13
-1
@@ -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)))
|
||||
@@ -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'
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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
|
||||
Reference in new issue
Block a user