mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-29 19:55:13 +08:00
🍕 Sync 2026-03-09 23:48:08
This commit is contained in:
1 parent
6541db9764
commit
2ccca0e195
12 files changed
+140
-28
No files matched your search
+9
-5
@@ -1,4 +1,6 @@
|
|||||||
#
|
#
|
||||||
|
# Copyright (C) 2015-2016 OpenWrt.org
|
||||||
|
#
|
||||||
# This is free software, licensed under the GNU General Public License v3.
|
# This is free software, licensed under the GNU General Public License v3.
|
||||||
#
|
#
|
||||||
|
|
||||||
@@ -7,14 +9,15 @@ include $(TOPDIR)/rules.mk
|
|||||||
PKG_ARCH_FASTNET:=$(ARCH)
|
PKG_ARCH_FASTNET:=$(ARCH)
|
||||||
|
|
||||||
PKG_NAME:=fastnet
|
PKG_NAME:=fastnet
|
||||||
PKG_VERSION:=0.7.5
|
# use PKG_SOURCE_DATE instead of PKG_VERSION for compatible
|
||||||
PKG_RELEASE:=1
|
PKG_SOURCE_DATE:=0.7.2
|
||||||
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_SOURCE_DATE).tar.gz
|
||||||
PKG_SOURCE_URL:=http://dl.istoreos.com/binary/fastnet/
|
PKG_SOURCE_URL:=http://dl.istoreos.com/binary/fastnet/
|
||||||
PKG_HASH:=skip
|
PKG_HASH:=skip
|
||||||
|
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-binary-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-binary-$(PKG_SOURCE_DATE)
|
||||||
|
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
PKG_USE_MIPS16:=0
|
PKG_USE_MIPS16:=0
|
||||||
@@ -27,6 +30,7 @@ define Package/$(PKG_NAME)
|
|||||||
SUBMENU:=Web Servers/Proxies
|
SUBMENU:=Web Servers/Proxies
|
||||||
TITLE:=FastNet - network test Web UI
|
TITLE:=FastNet - network test Web UI
|
||||||
DEPENDS:=@(arm||x86_64||aarch64)
|
DEPENDS:=@(arm||x86_64||aarch64)
|
||||||
|
PKGARCH:=all
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/description
|
define Package/$(PKG_NAME)/description
|
||||||
@@ -53,7 +57,7 @@ endef
|
|||||||
|
|
||||||
define Package/$(PKG_NAME)/install
|
define Package/$(PKG_NAME)/install
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d $(1)/etc/uci-defaults
|
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d $(1)/etc/uci-defaults
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/fastnet.$(PKG_ARCH_FASTNET) $(1)/usr/sbin/FastNet
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/fastnet.$(PKG_ARCH_FASTNET) $(1)/usr/sbin/fastnet
|
||||||
$(INSTALL_CONF) ./files/fastnet.config $(1)/etc/config/fastnet
|
$(INSTALL_CONF) ./files/fastnet.config $(1)/etc/config/fastnet
|
||||||
$(INSTALL_BIN) ./files/fastnet.init $(1)/etc/init.d/fastnet
|
$(INSTALL_BIN) ./files/fastnet.init $(1)/etc/init.d/fastnet
|
||||||
$(INSTALL_BIN) ./files/fastnet.uci-default $(1)/etc/uci-defaults/fastnet
|
$(INSTALL_BIN) ./files/fastnet.uci-default $(1)/etc/uci-defaults/fastnet
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
config fastnet
|
config fastnet
|
||||||
option enabled '1'
|
option enabled '1'
|
||||||
|
option host '0.0.0.0'
|
||||||
option port '3200'
|
option port '3200'
|
||||||
option token ''
|
option token ''
|
||||||
option logger '0'
|
option logger '0'
|
||||||
Regular → Executable
+3
-2
@@ -5,6 +5,7 @@ USE_PROCD=1
|
|||||||
|
|
||||||
get_config() {
|
get_config() {
|
||||||
config_get_bool enabled "$1" enabled 1
|
config_get_bool enabled "$1" enabled 1
|
||||||
|
config_get host "$1" host "0.0.0.0"
|
||||||
config_get port "$1" port 3200
|
config_get port "$1" port 3200
|
||||||
config_get token "$1" token ""
|
config_get token "$1" token ""
|
||||||
config_get_bool logger "$1" logger 0
|
config_get_bool logger "$1" logger 0
|
||||||
@@ -15,11 +16,11 @@ start_service() {
|
|||||||
config_foreach get_config fastnet
|
config_foreach get_config fastnet
|
||||||
[ "$enabled" != 1 ] && return 1
|
[ "$enabled" != 1 ] && return 1
|
||||||
|
|
||||||
addr="0.0.0.0:${port}"
|
addr="${host}:${port}"
|
||||||
|
|
||||||
procd_open_instance
|
procd_open_instance
|
||||||
procd_set_param limits nofile="65535 65535"
|
procd_set_param limits nofile="65535 65535"
|
||||||
procd_set_param command /usr/sbin/FastNet web --addr "$addr" --no-open
|
procd_set_param command /usr/sbin/fastnet web --addr "$addr" --no-open
|
||||||
[ -n "$token" ] && procd_append_param command --token "$token"
|
[ -n "$token" ] && procd_append_param command --token "$token"
|
||||||
[ "$logger" = 1 ] && procd_set_param stderr 1
|
[ "$logger" = 1 ] && procd_set_param stderr 1
|
||||||
procd_set_param respawn
|
procd_set_param respawn
|
||||||
|
|||||||
@@ -14,6 +14,14 @@ uci -q batch <<-EOF_UCI >/dev/null
|
|||||||
set ucitrack.@fastnet[-1].init=fastnet
|
set ucitrack.@fastnet[-1].init=fastnet
|
||||||
commit ucitrack
|
commit ucitrack
|
||||||
|
|
||||||
|
delete firewall.fastnet
|
||||||
|
set firewall.fastnet=rule
|
||||||
|
set firewall.fastnet.name="fastnet"
|
||||||
|
set firewall.fastnet.target="ACCEPT"
|
||||||
|
set firewall.fastnet.src="wan"
|
||||||
|
set firewall.fastnet.proto="tcp"
|
||||||
|
set firewall.fastnet.dest_port="3200"
|
||||||
|
commit firewall
|
||||||
EOF_UCI
|
EOF_UCI
|
||||||
|
|
||||||
/etc/init.d/fastnet enable
|
/etc/init.d/fastnet enable
|
||||||
|
|||||||
+2
-2
@@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk
|
|||||||
PKG_ARCH_kai:=$(ARCH)
|
PKG_ARCH_kai:=$(ARCH)
|
||||||
|
|
||||||
PKG_NAME:=kai
|
PKG_NAME:=kai
|
||||||
PKG_VERSION:=0.0.3
|
PKG_VERSION:=0.0.5
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://github.com/linkease/istore-packages/releases/download/prebuilt/
|
PKG_SOURCE_URL:=https://github.com/linkease/istore-packages/releases/download/prebuilt/
|
||||||
PKG_HASH:=skip
|
PKG_HASH:=skip
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
config kai
|
config kai
|
||||||
option 'enabled' '0'
|
option 'enabled' '0'
|
||||||
option 'cwd' '/tmp/kai'
|
option 'data_dir' ''
|
||||||
|
option 'port' '8197'
|
||||||
+90
-9
@@ -5,24 +5,95 @@ USE_PROCD=1
|
|||||||
|
|
||||||
get_config() {
|
get_config() {
|
||||||
config_get_bool enabled $1 enabled 1
|
config_get_bool enabled $1 enabled 1
|
||||||
config_get cwd $1 cwd "/tmp/kai"
|
config_get data_dir $1 data_dir ""
|
||||||
|
config_get port $1 port "8197"
|
||||||
|
}
|
||||||
|
|
||||||
|
http_get() {
|
||||||
|
local url="$1"
|
||||||
|
if command -v uclient-fetch >/dev/null 2>&1; then
|
||||||
|
uclient-fetch -O /dev/stdout "$url" 2>/dev/null
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
if command -v wget >/dev/null 2>&1; then
|
||||||
|
wget -qO- "$url" 2>/dev/null
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
if command -v curl >/dev/null 2>&1; then
|
||||||
|
curl -fsL "$url" 2>/dev/null
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
maybe_refresh_opencode_skills_cache() {
|
||||||
|
[ -n "$data_dir" ] || return 0
|
||||||
|
[ -n "$port" ] || return 0
|
||||||
|
command -v jsonfilter >/dev/null 2>&1 || return 0
|
||||||
|
|
||||||
|
local cache_root="${data_dir}/cache/opencode/skills"
|
||||||
|
local state_root="${data_dir}/state/opencode"
|
||||||
|
local version_file="${state_root}/skills.manifest.version"
|
||||||
|
local managed_file="${state_root}/skills.managed.list"
|
||||||
|
local manifest_url="http://127.0.0.1:${port}/agentconf/skills/manifest.json"
|
||||||
|
|
||||||
|
[ -d "$cache_root" ] || mkdir -p "$cache_root"
|
||||||
|
[ -d "$state_root" ] || mkdir -p "$state_root"
|
||||||
|
|
||||||
|
local manifest version prev_version skills
|
||||||
|
manifest="$(http_get "$manifest_url")" || return 0
|
||||||
|
version="$(printf '%s' "$manifest" | jsonfilter -e '@.version' 2>/dev/null)"
|
||||||
|
[ -n "$version" ] || return 0
|
||||||
|
|
||||||
|
prev_version=""
|
||||||
|
[ -f "$version_file" ] && prev_version="$(cat "$version_file" 2>/dev/null)"
|
||||||
|
[ "$version" = "$prev_version" ] && return 0
|
||||||
|
|
||||||
|
logger -t kai "opencode skills manifest changed; refreshing managed skill cache"
|
||||||
|
|
||||||
|
if [ -f "$managed_file" ]; then
|
||||||
|
while IFS= read -r s; do
|
||||||
|
[ -n "$s" ] || continue
|
||||||
|
rm -rf "${cache_root}/${s}"
|
||||||
|
done <"$managed_file"
|
||||||
|
fi
|
||||||
|
|
||||||
|
skills="$(printf '%s' "$manifest" | jsonfilter -e '@.skills[*]' 2>/dev/null)"
|
||||||
|
if [ -n "$skills" ]; then
|
||||||
|
printf '%s\n' "$skills" >"$managed_file"
|
||||||
|
printf '%s\n' "$skills" | while IFS= read -r s; do
|
||||||
|
[ -n "$s" ] || continue
|
||||||
|
rm -rf "${cache_root}/${s}"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
: >"$managed_file"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf '%s\n' "$version" >"$version_file"
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
start_kai_bin(){
|
start_kai_bin(){
|
||||||
procd_open_instance kai_bin
|
procd_open_instance kai_bin
|
||||||
procd_set_param command /usr/sbin/kai_bin
|
procd_set_param command /usr/sbin/kai_bin -a 0.0.0.0 -p "$port"
|
||||||
procd_set_param stderr 1
|
procd_set_param stderr 1
|
||||||
procd_set_param respawn
|
procd_set_param respawn
|
||||||
procd_close_instance
|
procd_close_instance
|
||||||
}
|
}
|
||||||
mkdir_cwd(){
|
mkdir_cwd(){
|
||||||
if [ ! -d $1 ]; then
|
[ -d "$1" ] || mkdir -p "$1"
|
||||||
mkdir -p $1
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
start_kai_session(){
|
start_kai_session(){
|
||||||
procd_open_instance kai_session
|
procd_open_instance kai_session
|
||||||
procd_set_param env OPENCODE_CWD=$1 OPENCODE_CONFIG=http://127.0.0.1:8197/config/opencode/opencode.json
|
local root="${data_dir}"
|
||||||
|
local cwd="${data_dir}/cwd"
|
||||||
|
procd_set_param env \
|
||||||
|
OPENCODE_CWD="${cwd}" \
|
||||||
|
OPENCODE_CONFIG="http://127.0.0.1:${port}/agentconf/opencode.json" \
|
||||||
|
XDG_CACHE_HOME="${root}/cache" \
|
||||||
|
XDG_DATA_HOME="${root}/data" \
|
||||||
|
XDG_CONFIG_HOME="${root}/config" \
|
||||||
|
XDG_STATE_HOME="${root}/state"
|
||||||
procd_set_param command /usr/sbin/kai_session
|
procd_set_param command /usr/sbin/kai_session
|
||||||
procd_append_param command serve --port "8196" --hostname "127.0.0.1"
|
procd_append_param command serve --port "8196" --hostname "127.0.0.1"
|
||||||
procd_set_param stderr 1
|
procd_set_param stderr 1
|
||||||
@@ -35,14 +106,24 @@ start_service() {
|
|||||||
if [ $enabled != 1 ]; then
|
if [ $enabled != 1 ]; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
if [ -z "${data_dir}" ]; then
|
||||||
|
logger -t kai "data_dir is empty; please set option data_dir in /etc/config/kai"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
logger -t kai "Starting KAI Service"
|
logger -t kai "Starting KAI Service"
|
||||||
start_kai_bin
|
start_kai_bin
|
||||||
sleep 1
|
sleep 1
|
||||||
mkdir_cwd $cwd
|
mkdir_cwd "${data_dir}"
|
||||||
start_kai_session $cwd
|
mkdir_cwd "${data_dir}/cwd"
|
||||||
|
mkdir_cwd "${data_dir}/cache"
|
||||||
|
mkdir_cwd "${data_dir}/data"
|
||||||
|
mkdir_cwd "${data_dir}/config"
|
||||||
|
mkdir_cwd "${data_dir}/state"
|
||||||
|
maybe_refresh_opencode_skills_cache
|
||||||
|
start_kai_session
|
||||||
logger -t kai "Starting KAI Service Completed"
|
logger -t kai "Starting KAI Service Completed"
|
||||||
}
|
}
|
||||||
|
|
||||||
service_triggers() {
|
service_triggers() {
|
||||||
procd_add_reload_trigger "kai"
|
procd_add_reload_trigger "kai"
|
||||||
}
|
}
|
||||||
@@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk
|
|||||||
PKG_ARCH_kai_session:=$(ARCH)
|
PKG_ARCH_kai_session:=$(ARCH)
|
||||||
|
|
||||||
PKG_NAME:=kai_session
|
PKG_NAME:=kai_session
|
||||||
PKG_VERSION:=0.0.3
|
PKG_VERSION:=0.0.5
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://github.com/linkease/istore-packages/releases/download/prebuilt/
|
PKG_SOURCE_URL:=https://github.com/linkease/istore-packages/releases/download/prebuilt/
|
||||||
PKG_HASH:=skip
|
PKG_HASH:=skip
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ LUCI_DEPENDS:=+luci-base +luci-lib-jsonc +curl +bandix
|
|||||||
PKG_MAINTAINER:=timsaya
|
PKG_MAINTAINER:=timsaya
|
||||||
|
|
||||||
PKG_VERSION:=0.12.6
|
PKG_VERSION:=0.12.6
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=3
|
||||||
|
|
||||||
include $(TOPDIR)/feeds/luci/luci.mk
|
include $(TOPDIR)/feeds/luci/luci.mk
|
||||||
|
|
||||||
|
|||||||
@@ -1059,8 +1059,14 @@ return view.extend({
|
|||||||
var stateSelect = E('select', { 'class': 'cbi-input-select', 'id': 'flows-state' }, [
|
var stateSelect = E('select', { 'class': 'cbi-input-select', 'id': 'flows-state' }, [
|
||||||
E('option', { 'value': '' }, _('All')),
|
E('option', { 'value': '' }, _('All')),
|
||||||
E('option', { 'value': 'ESTABLISHED' }, 'ESTABLISHED'),
|
E('option', { 'value': 'ESTABLISHED' }, 'ESTABLISHED'),
|
||||||
|
E('option', { 'value': 'SYN_SENT' }, 'SYN_SENT'),
|
||||||
|
E('option', { 'value': 'SYN_RECV' }, 'SYN_RECV'),
|
||||||
|
E('option', { 'value': 'FIN_WAIT' }, 'FIN_WAIT'),
|
||||||
|
E('option', { 'value': 'FIN_WAIT2' }, 'FIN_WAIT2'),
|
||||||
E('option', { 'value': 'TIME_WAIT' }, 'TIME_WAIT'),
|
E('option', { 'value': 'TIME_WAIT' }, 'TIME_WAIT'),
|
||||||
E('option', { 'value': 'CLOSE_WAIT' }, 'CLOSE_WAIT')
|
E('option', { 'value': 'CLOSE_WAIT' }, 'CLOSE_WAIT'),
|
||||||
|
E('option', { 'value': 'LAST_ACK' }, 'LAST_ACK'),
|
||||||
|
E('option', { 'value': 'CLOSE' }, 'CLOSE')
|
||||||
]);
|
]);
|
||||||
var tableBody = E('tbody', { 'class': 'flows-table-body' });
|
var tableBody = E('tbody', { 'class': 'flows-table-body' });
|
||||||
var tableWrap = E('div', { 'class': 'flows-table-wrap' }, [
|
var tableWrap = E('div', { 'class': 'flows-table-wrap' }, [
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk
|
|||||||
|
|
||||||
LUCI_TITLE:=kai
|
LUCI_TITLE:=kai
|
||||||
PKG_VERSION:=1.0.0
|
PKG_VERSION:=1.0.0
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
LUCI_DEPENDS:=+kai +kai_session
|
LUCI_DEPENDS:=+kai +kai_session +luci-compat
|
||||||
LUCI_MINIFY_CSS:=0
|
LUCI_MINIFY_CSS:=0
|
||||||
LUCI_MINIFY_JS:=0
|
LUCI_MINIFY_JS:=0
|
||||||
|
|
||||||
@@ -25,4 +25,4 @@ endef
|
|||||||
|
|
||||||
include $(TOPDIR)/feeds/luci/luci.mk
|
include $(TOPDIR)/feeds/luci/luci.mk
|
||||||
|
|
||||||
# call BuildPackage - OpenWrt buildroot signature
|
# call BuildPackage - OpenWrt buildroot signature
|
||||||
@@ -8,6 +8,16 @@ s.addremove=false
|
|||||||
s.anonymous=true
|
s.anonymous=true
|
||||||
|
|
||||||
s:option(Flag, "enabled", translate("Enable")).rmempty=false
|
s:option(Flag, "enabled", translate("Enable")).rmempty=false
|
||||||
|
|
||||||
|
local data_dir = s:option(Value, "data_dir", translate("Data directory"))
|
||||||
|
data_dir.placeholder = ""
|
||||||
|
data_dir.rmempty = false
|
||||||
|
data_dir.description = translate("Required. KAI session will store cwd/cache/data/config/state under this directory (subfolders: cwd, cache, data, config, state).")
|
||||||
|
|
||||||
|
local port = s:option(Value, "port", translate("API port"))
|
||||||
|
port.default = "8197"
|
||||||
|
port.rmempty = false
|
||||||
|
port.datatype = "port"
|
||||||
|
port.description = translate("Port for KAI HTTP server (kai_bin). kai_session will read OPENCODE_CONFIG via 127.0.0.1:<port>.")
|
||||||
|
|
||||||
return m
|
return m
|
||||||
|
|
||||||
|
|
||||||
Reference in new issue
Block a user