luci-app-gost: add packages

This commit is contained in:
CN_SZTL 2020-03-04 17:51:24 +08:00
parent e519ba00a2
commit e3628a37b0
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
9 changed files with 199 additions and 0 deletions

View File

@ -0,0 +1,58 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=gost
PKG_VERSION:=2.11.0
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/ginuerzh/gost.git
PKG_SOURCE_VERSION:=2c0e01a5dd3d2257527ee41867fefa4273efc380
PKG_MAINTAINER:=[CTCGFW] Project OpenWrt
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_SOURCE_SUBDIR)-$(PKG_VERSION).tar.gz
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
GO_PKG:=github.com/ginuerzh/gost
GO_PKG_LDFLAGS:=-s -w
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
define Package/$(PKG_NAME)
SECTION:=net
CATEGORY:=Network
TITLE:=GO Simple Tunnel
URL:=https://github.com/ginuerzh/gost
DEPENDS:=$(GO_ARCH_DEPENDS)
endef
define Package/$(PKG_NAME)/description
A simple security tunnel written in Golang
endef
define Build/Prepare
tar -zxf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) --strip-components 1
endef
define Build/Configure
endef
define Build/Compile
$(eval GO_PKG_BUILD_PKG:=$(GO_PKG)/cmd/gost)
$(call GoPackage/Build/Configure)
$(call GoPackage/Build/Compile)
$(STAGING_DIR_HOST)/bin/upx --lzma --best $(GO_PKG_BUILD_BIN_DIR)/gost
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(GO_PKG_BUILD_BIN_DIR)/gost $(1)/usr/bin/gost
endef
$(eval $(call GoBinPackage,$(PKG_NAME)))
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

@ -0,0 +1,21 @@
# Copyright (C) 2020 Openwrt.org
#
# This is a free software, use it under GNU General Public License v3.0.
#
# Created By [CTCGFW]Project-OpenWrt
# https://github.com/project-openwrt
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-gost
PKG_VERSION:=1.0
PKG_RELEASE:=1
LUCI_TITLE:=LuCI support for Gost
LUCI_DEPENDS:=+gost +iptables
LUCI_PKGARCH:=all
PKG_MAINTAINER:=[CTCGFW]Project-OpenWrt
include $(TOPDIR)/feeds/luci/luci.mk
# call BuildPackage - OpenWrt buildroot signature

View File

@ -0,0 +1,23 @@
-- This is a free software, use it under GNU General Public License v3.0.
-- Created By [CTCGFW]Project OpenWRT
-- https://github.com/project-openwrt
module("luci.controller.gost", package.seeall)
function index()
if not nixio.fs.access("/etc/config/gost") then
return
end
local page
page = entry({"admin", "vpn", "gost"}, cbi("gost"), _("Gost"), 100)
page.dependent = true
entry({"admin", "vpn", "gost", "status"},call("act_status")).leaf=true
end
function act_status()
local e={}
e.running=luci.sys.call("pgrep gost >/dev/null")==0
luci.http.prepare_content("application/json")
luci.http.write_json(e)
end

View File

@ -0,0 +1,20 @@
-- Created By [CTCGFW]Project-OpenWrt
-- https://github.com/project-openwrt
mp = Map("gost", translate("Gost"))
mp.description = translate("A simple security tunnel written in Golang.")
mp:section(SimpleSection).template = "gost/gost_status"
s = mp:section(TypedSection, "gost")
s.anonymous=true
s.addremove=false
enable = s:option(Flag, "enable", translate("Enable"))
enable.default = 0
enable.rmempty = false
run_command = s:option(Value, "run_command", translate("Command"))
run_command.rmempty = false
return mp

View File

@ -0,0 +1,22 @@
<script type="text/javascript">//<![CDATA[
XHR.poll(3, '<%=url([[admin]], [[vpn]], [[gost]], [[status]])%>', null,
function(x, data) {
var tb = document.getElementById('gost_status');
if (data && tb) {
if (data.running) {
var links = '<em><b><font color=green>Gost <%:RUNNING%></font></b></em>';
tb.innerHTML = links;
} else {
tb.innerHTML = '<em><b><font color=red>Gost <%:NOT RUNNING%></font></b></em>';
}
}
}
);
//]]>
</script>
<style>.mar-10 {margin-left: 50px; margin-right: 10px;}</style>
<fieldset class="cbi-section">
<p id="gost_status">
<em><%:Collecting data...%></em>
</p>
</fieldset>

View File

@ -0,0 +1,17 @@
msgid "Gost"
msgstr "Gost"
msgid "A simple security tunnel written in Golang."
msgstr "GO语言实现的安全隧道。"
msgid "RUNNING"
msgstr "运行中"
msgid "NOT RUNNING"
msgstr "未运行"
msgid "Enable"
msgstr "启用"
msgid "Command"
msgstr "命令"

View File

@ -0,0 +1,5 @@
config gost
option enable '0'
option run_command ''

View File

@ -0,0 +1,22 @@
#!/bin/sh /etc/rc.common
# Created By [CTCGFW]Project OpenWRT
# https://github.com/project-openwrt
START=80
STOP=10
enable="$(uci get gost.@gost[0].enable)"
run_command="$(uci get gost.@gost[0].run_command)"
start()
{
stop
[ "${enable}" -ne "1" ] && exit 0
/usr/bin/gost ${run_command} &
}
stop()
{
killall -9 "gost" > "/dev/null" 2>&1
}

View File

@ -0,0 +1,11 @@
#!/bin/sh
uci -q batch <<-EOF >/dev/null
delete ucitrack.@gost[-1]
add ucitrack gost
set ucitrack.@gost[-1].init=gost
commit ucitrack
EOF
rm -f /tmp/luci-indexcache
exit 0