mirror of
				https://github.com/kenzok8/openwrt-packages.git
				synced 2025-10-30 07:50:37 +08:00 
			
		
		
		
	update 2024-03-21 01:10:01
This commit is contained in:
		
							
								
								
									
										67
									
								
								ddnsto/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								ddnsto/Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,67 @@ | |||||||
|  | # | ||||||
|  | # Copyright (C) 2015-2016 OpenWrt.org | ||||||
|  | # Copyright (C) 2020 jjm2473@gmail.com | ||||||
|  | # | ||||||
|  | # This is free software, licensed under the GNU General Public License v3. | ||||||
|  | # | ||||||
|  |  | ||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
|  | PKG_ARCH_DDNSTO:=$(ARCH) | ||||||
|  |  | ||||||
|  | PKG_NAME:=ddnsto | ||||||
|  | PKG_VERSION:=3.0.4 | ||||||
|  | PKG_RELEASE:=$(PKG_ARCH_DDNSTO)-7 | ||||||
|  | PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz | ||||||
|  | PKG_SOURCE_URL:=http://fw.koolcenter.com/binary/ddnsto/ | ||||||
|  | PKG_HASH:=486aa15a5e026b5a3aca72f1850746e127a7e86ef11db8a7c498dad29545eaf6 | ||||||
|  |  | ||||||
|  | PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-binary-$(PKG_VERSION) | ||||||
|  |  | ||||||
|  | PKG_BUILD_PARALLEL:=1 | ||||||
|  | PKG_USE_MIPS16:=0 | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/package.mk | ||||||
|  |  | ||||||
|  | define Package/$(PKG_NAME) | ||||||
|  | 	SECTION:=net | ||||||
|  | 	CATEGORY:=Network | ||||||
|  | 	SUBMENU:=Web Servers/Proxies | ||||||
|  | 	TITLE:=DDNS.to - the reverse proxy | ||||||
|  | 	DEPENDS:= | ||||||
|  | 	PKGARCH:=all | ||||||
|  | 	URL:=https://www.ddnsto.com/ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/$(PKG_NAME)/description | ||||||
|  |   DDNS.to is a reverse proxy | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/$(PKG_NAME)/conffiles | ||||||
|  | /etc/config/ddnsto | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/$(PKG_NAME)/postinst | ||||||
|  | #!/bin/sh | ||||||
|  | if [ -z "$${IPKG_INSTROOT}" ]; then | ||||||
|  | 	[ -f /etc/uci-defaults/ddnsto ] && /etc/uci-defaults/ddnsto && rm -f /etc/uci-defaults/ddnsto | ||||||
|  | fi | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Configure | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Compile | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/$(PKG_NAME)/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d $(1)/etc/uci-defaults | ||||||
|  | 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/ddnsto.$(PKG_ARCH_DDNSTO) $(1)/usr/sbin/ddnstod | ||||||
|  | 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/ddwebdav.$(PKG_ARCH_DDNSTO) $(1)/usr/sbin/ddwebdav | ||||||
|  | 	$(INSTALL_CONF) ./files/ddnsto.config $(1)/etc/config/ddnsto | ||||||
|  | 	$(INSTALL_BIN) ./files/ddnsto.init $(1)/etc/init.d/ddnsto | ||||||
|  | 	$(INSTALL_BIN) ./files/ddnsto.uci-default $(1)/etc/uci-defaults/ddnsto | ||||||
|  | 	$(LN) /usr/sbin/ddnstod $(1)/usr/sbin/ddnsto | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | $(eval $(call BuildPackage,$(PKG_NAME))) | ||||||
							
								
								
									
										49
									
								
								ddnsto/files/ddnsto-monitor.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								ddnsto/files/ddnsto-monitor.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,49 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | DEVICE_IDX=0 | ||||||
|  | LOG_LEVEL=2 | ||||||
|  | while getopts u:x:l: flag | ||||||
|  | do | ||||||
|  |     case "${flag}" in | ||||||
|  |         u) TOKEN=${OPTARG};; | ||||||
|  |         x) DEVICE_IDX=${OPTARG};; | ||||||
|  |         l) LOG_LEVEL=${OPTARG};; | ||||||
|  |     esac | ||||||
|  | done | ||||||
|  |  | ||||||
|  | if [ -z "${TOKEN}" ]; then | ||||||
|  |   logger "ddnsto: the token is empty, get token from https://www.ddnsto.com/ " | ||||||
|  |   exit 2 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | echo "ddnsto version device_id is is:" | ||||||
|  | /usr/sbin/ddnsto -u ${TOKEN} -w | ||||||
|  |  | ||||||
|  | _term() { | ||||||
|  |   logger "ddnsto: SIGTERM" | ||||||
|  |   killall ddnsto 2>/dev/null | ||||||
|  |   killall ddwebdav 2>/dev/null | ||||||
|  |  | ||||||
|  |   rm -f /tmp/.ddnsto.pid | ||||||
|  |   rm -f /tmp/.ddnsto.status | ||||||
|  |   rm -f /tmp/.ddnsto.up | ||||||
|  |   exit | ||||||
|  | } | ||||||
|  |  | ||||||
|  | trap "_term;" SIGTERM | ||||||
|  |  | ||||||
|  | while true ; do | ||||||
|  |   if ! pidof "ddnsto" > /dev/null ; then | ||||||
|  |     logger "ddnsto try running" | ||||||
|  |     /usr/sbin/ddnsto -u ${TOKEN} -x ${DEVICE_IDX} & | ||||||
|  |     PID=$! | ||||||
|  |     wait $PID | ||||||
|  |     RET=$? | ||||||
|  |     logger "ddnsto EXIT CODE: ${RET}" | ||||||
|  |     if [ "${RET}" == "100" ]; then | ||||||
|  |       logger "ddnsto token error, please set a correct token from https://www.ddnsto.com/ " | ||||||
|  |       exit 100 | ||||||
|  |     fi | ||||||
|  |   fi | ||||||
|  |   sleep 20 | ||||||
|  | done | ||||||
							
								
								
									
										5
									
								
								ddnsto/files/ddnsto.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								ddnsto/files/ddnsto.config
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | config ddnsto | ||||||
|  | 	option enabled '0' | ||||||
|  | 	option feat_port '3033' | ||||||
|  | 	option feat_enabled '0' | ||||||
|  | 	option index '0' | ||||||
							
								
								
									
										45
									
								
								ddnsto/files/ddnsto.init
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										45
									
								
								ddnsto/files/ddnsto.init
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,45 @@ | |||||||
|  | #!/bin/sh /etc/rc.common | ||||||
|  |  | ||||||
|  | START=99 | ||||||
|  | USE_PROCD=1 | ||||||
|  |  | ||||||
|  | get_config() { | ||||||
|  |         config_get_bool enabled $1 enabled 1 | ||||||
|  |         config_get_bool logger $1 logger 0 | ||||||
|  |         config_get token $1 token | ||||||
|  |         config_get index $1 index 0 | ||||||
|  |         config_get_bool feat_enabled $1 feat_enabled 1 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | ddnsto_prepare() { | ||||||
|  |         killall ddnstod 2>/dev/null | ||||||
|  |         killall ddwebdav 2>/dev/null | ||||||
|  | } | ||||||
|  |  | ||||||
|  | stop_service() { | ||||||
|  |         ddnsto_prepare | ||||||
|  | } | ||||||
|  |  | ||||||
|  | start_service() { | ||||||
|  |         ddnsto_prepare | ||||||
|  |         config_load ddnsto | ||||||
|  |         config_foreach get_config ddnsto | ||||||
|  |         if [ $enabled != 1 ]; then  | ||||||
|  |                 return 1 | ||||||
|  |         fi  | ||||||
|  |  | ||||||
|  |         if [ -z "$token" ]; then | ||||||
|  |                 logger -t ddnsto -p warn "token not set" | ||||||
|  |                 return 1 | ||||||
|  |         fi | ||||||
|  |          | ||||||
|  |         procd_open_instance | ||||||
|  |         procd_set_param command /usr/sbin/ddnstod -u "$token" -x $index -F | ||||||
|  |         [ "$logger" == 1 ] && procd_set_param stderr 1 | ||||||
|  |         procd_set_param respawn | ||||||
|  |         procd_close_instance  | ||||||
|  | } | ||||||
|  |  | ||||||
|  | service_triggers() { | ||||||
|  |         procd_add_reload_trigger "ddnsto" | ||||||
|  | } | ||||||
							
								
								
									
										12
									
								
								ddnsto/files/ddnsto.uci-default
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										12
									
								
								ddnsto/files/ddnsto.uci-default
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | uci -q batch <<-EOF >/dev/null | ||||||
|  | 	delete ucitrack.@ddnsto[-1] | ||||||
|  | 	add ucitrack ddnsto | ||||||
|  | 	set ucitrack.@ddnsto[-1].init=ddnsto | ||||||
|  | 	commit ucitrack | ||||||
|  | EOF | ||||||
|  |  | ||||||
|  | /etc/init.d/ddnsto enable | ||||||
|  |  | ||||||
|  | exit 0 | ||||||
							
								
								
									
										13
									
								
								luci-app-easymesh/Makefile
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										13
									
								
								luci-app-easymesh/Makefile
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,13 @@ | |||||||
|  | # | ||||||
|  | #-- Copyright (C) 2021 dz <dingzhong110@gmail.com> | ||||||
|  | # | ||||||
|  |  | ||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
|  | LUCI_TITLE:=LuCI Support for easymesh | ||||||
|  | LUCI_DEPENDS:= +kmod-cfg80211 +batctl-default +kmod-batman-adv +wpad-mesh-openssl +dawn | ||||||
|  | PKG_VERSION:=2.0 | ||||||
|  |  | ||||||
|  | include $(TOPDIR)/feeds/luci/luci.mk | ||||||
|  |  | ||||||
|  | # call BuildPackage - OpenWrt buildroot signature | ||||||
							
								
								
									
										10
									
								
								luci-app-easymesh/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								luci-app-easymesh/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | |||||||
|  | # luci-app-easymesh | ||||||
|  | 水平有限写了基于kmod-batman-adv+802.11s 有线+无线回程的mesh luci设置插件。 | ||||||
|  |  | ||||||
|  | 新增ap设置让设置更加方便。 | ||||||
|  |  | ||||||
|  | 新增KVR设置并添加dawn依赖在ap之间切换延迟明显降低。 | ||||||
|  |  | ||||||
|  | 插件只对https://github.com/coolsnowwolf/lede lean版openwrt做了测试 其他源码出现问题请自行解决。 | ||||||
|  |  | ||||||
|  | 写的很烂暂时能用 | ||||||
							
								
								
									
										15
									
								
								luci-app-easymesh/luasrc/controller/easymesh.lua
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								luci-app-easymesh/luasrc/controller/easymesh.lua
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,15 @@ | |||||||
|  | -- Copyright (C) 2021 dz <dingzhong110@gmail.com> | ||||||
|  |  | ||||||
|  | module("luci.controller.easymesh", package.seeall) | ||||||
|  |  | ||||||
|  | function index() | ||||||
|  | 	if not nixio.fs.access("/etc/config/easymesh") then | ||||||
|  | 		return | ||||||
|  | 	end | ||||||
|  |  | ||||||
|  | 	local page | ||||||
|  |  | ||||||
|  | 	page = entry({"admin", "network", "easymesh"}, cbi("easymesh"), _("EASY MESH"), 60) | ||||||
|  | 	page.dependent = true | ||||||
|  | 	page.acl_depends = { "luci-app-easymesh" } | ||||||
|  | end | ||||||
							
								
								
									
										127
									
								
								luci-app-easymesh/luasrc/model/cbi/easymesh.lua
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										127
									
								
								luci-app-easymesh/luasrc/model/cbi/easymesh.lua
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,127 @@ | |||||||
|  | -- Copyright (C) 2021 dz <dingzhong110@gmail.com> | ||||||
|  |  | ||||||
|  | local m,s,o | ||||||
|  | local sys = require "luci.sys" | ||||||
|  | local uci = require "luci.model.uci".cursor() | ||||||
|  |  | ||||||
|  | m = Map("easymesh") | ||||||
|  |  | ||||||
|  | function detect_Node() | ||||||
|  | 	local data = {} | ||||||
|  | 	local lps = luci.util.execi(" batctl n 2>/dev/null | tail +2 | sed 's/^[ ][ ]*//g' | sed 's/[ ][ ]*/ /g' | sed 's/$/ /g' ") | ||||||
|  | 	for value in lps do | ||||||
|  | 		local row = {} | ||||||
|  | 		local pos = string.find(value, " ") | ||||||
|  | 		local IFA = string.sub(value, 1, pos - 1) | ||||||
|  | 		local value = string.sub(value, pos + 1, string.len(value)) | ||||||
|  | 		pos = string.find(value, " ") | ||||||
|  | 		local pos = string.find(value, " ") | ||||||
|  | 		local Neighbora = string.sub(value, 1, pos - 1) | ||||||
|  | 		local value = string.sub(value, pos + 1, string.len(value)) | ||||||
|  | 		pos = string.find(value, " ") | ||||||
|  | 		local pos = string.find(value, " ") | ||||||
|  | 		local lastseena = string.sub(value, 1, pos - 1) | ||||||
|  | 		local value = string.sub(value, pos + 1, string.len(value)) | ||||||
|  | 		pos = string.find(value, " ") | ||||||
|  | 		row["IF"] = IFA | ||||||
|  | 		row["Neighbor"] = Neighbora | ||||||
|  | 		row["lastseen"] = lastseena | ||||||
|  | 		table.insert(data, row) | ||||||
|  | 	end | ||||||
|  | 	return data | ||||||
|  | end | ||||||
|  | local Nodes = luci.sys.exec("batctl n 2>/dev/null| tail +3 | wc -l") | ||||||
|  | local Node = detect_Node() | ||||||
|  | v = m:section(Table, Node, "" ,"<b>" .. translate("Active node") .. ":" .. Nodes .. "</b>") | ||||||
|  | v:option(DummyValue, "IF", translate("IF")) | ||||||
|  | v:option(DummyValue, "Neighbor", translate("Neighbor")) | ||||||
|  | v:option(DummyValue, "lastseen", translate("lastseen")) | ||||||
|  |  | ||||||
|  | -- Basic | ||||||
|  | s = m:section(TypedSection, "easymesh", translate("Settings"), translate("General Settings")) | ||||||
|  | s.anonymous = true | ||||||
|  |  | ||||||
|  | ---- Eanble | ||||||
|  | o = s:option(Flag, "enabled", translate("Enable"), translate("Enable or disable EASY MESH")) | ||||||
|  | o.default = 0 | ||||||
|  | o.rmempty = false | ||||||
|  |  | ||||||
|  | o = s:option(ListValue, "role", translate("role")) | ||||||
|  | o:value("off", translate("off")) | ||||||
|  | o:value("server", translate("host MESH")) | ||||||
|  | o:value("client", translate("son MESH")) | ||||||
|  | o.rmempty = false | ||||||
|  |  | ||||||
|  | apRadio = s:option(ListValue, "apRadio", translate("MESH Radio device"), translate("The radio device which MESH use")) | ||||||
|  | uci:foreach("wireless", "wifi-device", | ||||||
|  | 							function(s) | ||||||
|  | 								apRadio:value(s['.name']) | ||||||
|  | 							end) | ||||||
|  | apRadio:value("all", translate("ALL")) | ||||||
|  | o.default = "radio0" | ||||||
|  | o.rmempty = false | ||||||
|  |  | ||||||
|  | ---- mesh | ||||||
|  | o = s:option(Value, "mesh_id", translate("MESH ID")) | ||||||
|  | o.default = "easymesh" | ||||||
|  | o.description = translate("MESH ID") | ||||||
|  |  | ||||||
|  | enable = s:option(Flag, "encryption", translate("Encryption"), translate("")) | ||||||
|  | enable.default = 0 | ||||||
|  | enable.rmempty = false | ||||||
|  |  | ||||||
|  | o = s:option(Value, "key", translate("Key")) | ||||||
|  | o.default = "easymesh" | ||||||
|  | o:depends("encryption", 1) | ||||||
|  |  | ||||||
|  | ---- kvr | ||||||
|  | enable = s:option(Flag, "kvr", translate("K/V/R"), translate("")) | ||||||
|  | enable.default = 1 | ||||||
|  | enable.rmempty = false | ||||||
|  |  | ||||||
|  | o = s:option(Value, "mobility_domain", translate("Mobility Domain"), translate("4-character hexadecimal ID")) | ||||||
|  | o.default = "4f57" | ||||||
|  | o.datatype = "and(hexstring,rangelength(4,4))" | ||||||
|  | o:depends("kvr", 1) | ||||||
|  |  | ||||||
|  | o = s:option(Value, "rssi_val", translate("Threshold for an good RSSI")) | ||||||
|  | o.default = "-60" | ||||||
|  | o.atatype = "range(-1,-120)" | ||||||
|  | o:depends("kvr", 1) | ||||||
|  |  | ||||||
|  | o = s:option(Value, "low_rssi_val", translate("Threshold for an bad RSSI")) | ||||||
|  | o.default = "-88" | ||||||
|  | o.atatype = "range(-1,-120)" | ||||||
|  | o:depends("kvr", 1) | ||||||
|  |  | ||||||
|  | ---- 802.11F | ||||||
|  | --enable = s:option(Flag, "iapp", translate("inter-access point protocol"), translate("Wireless Access Points (APs) running on different vendors can communicate with each other")) | ||||||
|  | --enable.default = 0 | ||||||
|  | --enable.rmempty = false | ||||||
|  |  | ||||||
|  | ---- ap_mode | ||||||
|  | enable = s:option(Flag, "ap_mode", translate("AP MODE Enable"), translate("Enable or disable AP MODE")) | ||||||
|  | enable.default = 0 | ||||||
|  | enable.rmempty = false | ||||||
|  |  | ||||||
|  | o = s:option(Value, "ipaddr", translate("IPv4-Address")) | ||||||
|  | o.default = "192.168.1.10" | ||||||
|  | o.datatype = "ip4addr" | ||||||
|  | o:depends("ap_mode", 1) | ||||||
|  |  | ||||||
|  | o = s:option(Value, "netmask", translate("IPv4 netmask")) | ||||||
|  | o.default = "255.255.255.0" | ||||||
|  | o.datatype = "ip4addr" | ||||||
|  | o:depends("ap_mode", 1) | ||||||
|  |  | ||||||
|  | o = s:option(Value, "gateway", translate("IPv4 gateway")) | ||||||
|  | o.default = "192.168.1.1" | ||||||
|  | o.datatype = "ip4addr" | ||||||
|  | o:depends("ap_mode", 1) | ||||||
|  |  | ||||||
|  | o = s:option(Value, "dns", translate("Use custom DNS servers")) | ||||||
|  | o.default = "192.168.1.1" | ||||||
|  | o.datatype = "ip4addr" | ||||||
|  | o:depends("ap_mode", 1) | ||||||
|  |  | ||||||
|  | return m | ||||||
							
								
								
									
										89
									
								
								luci-app-easymesh/po/zh-cn/easymesh.po
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										89
									
								
								luci-app-easymesh/po/zh-cn/easymesh.po
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,89 @@ | |||||||
|  | msgid "" | ||||||
|  | msgstr "Content-Type: text/plain; charset=UTF-8\n" | ||||||
|  |  | ||||||
|  | msgid "easymesh" | ||||||
|  | msgstr "easymesh" | ||||||
|  |  | ||||||
|  | msgid "Active node" | ||||||
|  | msgstr "活动节点" | ||||||
|  |  | ||||||
|  | msgid "IF" | ||||||
|  | msgstr "IF" | ||||||
|  |  | ||||||
|  | msgid "Neighbor" | ||||||
|  | msgstr "节点邻居设备" | ||||||
|  |  | ||||||
|  | msgid "lastseen" | ||||||
|  | msgstr "上次连接延时" | ||||||
|  |  | ||||||
|  | msgid "EASY MESH" | ||||||
|  | msgstr "简单MESH" | ||||||
|  |  | ||||||
|  | msgid "Settings" | ||||||
|  | msgstr "设置" | ||||||
|  |  | ||||||
|  | msgid "General Settings" | ||||||
|  | msgstr "基本设置" | ||||||
|  |  | ||||||
|  | msgid "Enable" | ||||||
|  | msgstr "启用" | ||||||
|  |  | ||||||
|  | msgid "role" | ||||||
|  | msgstr "角色" | ||||||
|  |  | ||||||
|  | msgid "off" | ||||||
|  | msgstr "关闭" | ||||||
|  |  | ||||||
|  | msgid "host MESH" | ||||||
|  | msgstr "主MESH" | ||||||
|  |  | ||||||
|  | msgid "son MESH" | ||||||
|  | msgstr "子MESH" | ||||||
|  |  | ||||||
|  | msgid "MESH Radio device" | ||||||
|  | msgstr "MESH无线设备" | ||||||
|  |  | ||||||
|  | msgid "The radio device which MESH use" | ||||||
|  | msgstr "使用MESH组网的无线设备" | ||||||
|  |  | ||||||
|  | msgid "AUTO" | ||||||
|  | msgstr "自动" | ||||||
|  |  | ||||||
|  | msgid "Enable or disable EASY MESH" | ||||||
|  | msgstr "启用或禁用简单MESH" | ||||||
|  |  | ||||||
|  | msgid "Encryption" | ||||||
|  | msgstr "加密" | ||||||
|  |  | ||||||
|  | msgid "Key" | ||||||
|  | msgstr "密码" | ||||||
|  |  | ||||||
|  | msgid "inter-access point protocol" | ||||||
|  | msgstr "接入点内部协议" | ||||||
|  |  | ||||||
|  | msgid "Wireless Access Points (APs) running on different vendors can communicate with each other" | ||||||
|  | msgstr "运行在不同供应商的无线访问点(AP)可以相互交流" | ||||||
|  |  | ||||||
|  | msgid "Threshold for an good RSSI" | ||||||
|  | msgstr "快速漫游接入值" | ||||||
|  |  | ||||||
|  | msgid "Threshold for an bad RSSI" | ||||||
|  | msgstr "快速漫游踢出值" | ||||||
|  |  | ||||||
|  | msgid "AP MODE Enable" | ||||||
|  | msgstr "启用AP模式" | ||||||
|  |  | ||||||
|  | msgid "Enable or disable AP MODE" | ||||||
|  | msgstr "启用或禁用AP模式" | ||||||
|  |  | ||||||
|  | msgid "IPv4-Address" | ||||||
|  | msgstr "IPv4 地址" | ||||||
|  |  | ||||||
|  | msgid "IPv4 netmask" | ||||||
|  | msgstr "IPv4 子网掩码" | ||||||
|  |  | ||||||
|  | msgid "IPv4 gateway" | ||||||
|  | msgstr "IPv4 网关" | ||||||
|  |  | ||||||
|  | msgid "Use custom DNS servers" | ||||||
|  | msgstr "使用自定义的 DNS 服务器" | ||||||
							
								
								
									
										1
									
								
								luci-app-easymesh/po/zh_Hans
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								luci-app-easymesh/po/zh_Hans
									
									
									
									
									
										Symbolic link
									
								
							| @ -0,0 +1 @@ | |||||||
|  | zh-cn | ||||||
							
								
								
									
										3
									
								
								luci-app-easymesh/root/etc/config/easymesh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								luci-app-easymesh/root/etc/config/easymesh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  |  | ||||||
|  | config easymesh 'config' | ||||||
|  | 	option enabled '0' | ||||||
							
								
								
									
										261
									
								
								luci-app-easymesh/root/etc/init.d/easymesh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										261
									
								
								luci-app-easymesh/root/etc/init.d/easymesh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,261 @@ | |||||||
|  | #!/bin/sh /etc/rc.common | ||||||
|  | START=99 | ||||||
|  | STOP=70 | ||||||
|  |  | ||||||
|  | load_easymesh_config() { | ||||||
|  | 	enable=$(uci -q get easymesh.config.enabled) | ||||||
|  | 	mesh_bat0=$(uci -q get network.bat0) | ||||||
|  | 	ap_mode=$(uci -q get easymesh.config.ap_mode) | ||||||
|  | 	lan=$(uci -q get network.lan.ifname) | ||||||
|  | 	ipaddr=$(uci -q get easymesh.config.ipaddr) | ||||||
|  | 	netmask=$(uci -q get easymesh.config.netmask) | ||||||
|  | 	gateway=$(uci -q get easymesh.config.gateway) | ||||||
|  | 	dns=$(uci -q get easymesh.config.dns) | ||||||
|  | 	ap_ipaddr=$(uci -q get network.lan.ipaddr) | ||||||
|  | 	ap_ipaddr1=$(sed -n '1p' /etc/easymesh 2>/dev/null) | ||||||
|  | 	apRadio=$(uci -q get easymesh.config.apRadio) | ||||||
|  | 	kvr=$(uci -q get easymesh.config.kvr) | ||||||
|  | 	iapp=$(uci -q get easymesh.config.iapp) | ||||||
|  | 	brlan=$(uci -q get network.@device[0].name) | ||||||
|  | 	role=$(uci -q get easymesh.config.role) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | ap_mode_stop() { | ||||||
|  | 	ap_ipaddr=$(uci -q get network.lan.ipaddr) | ||||||
|  | 	ap_ipaddr1=$(sed -n '1p' /etc/easymesh 2>/dev/null) | ||||||
|  | 	dns1=$(sed -n '2p' /etc/easymesh 2>/dev/null) | ||||||
|  | 	if [ "$ap_ipaddr" = "$ap_ipaddr1" ]; then | ||||||
|  | 		uci -q delete network.lan.gateway | ||||||
|  | 		uci -q del_list network.lan.dns=$dns1 | ||||||
|  | 		uci commit network | ||||||
|  |  | ||||||
|  | 		echo "" >/etc/easymesh | ||||||
|  |  | ||||||
|  | 		uci -q delete dhcp.lan.dynamicdhcp | ||||||
|  | 		uci -q delete dhcp.lan.ignore | ||||||
|  | 		uci commit dhcp | ||||||
|  |  | ||||||
|  | 		/etc/init.d/odhcpd enable && /etc/init.d/odhcpd start | ||||||
|  | 		/etc/init.d/firewall enable && /etc/init.d/firewall start >/dev/null 2>&1 | ||||||
|  | 	fi | ||||||
|  | } | ||||||
|  |  | ||||||
|  | add_wifi_mesh() { | ||||||
|  | 	mesh_nwi_mesh=$(uci -q get network.nwi_mesh_${apall}) | ||||||
|  | 	mesh_apRadio=$(uci -q get wireless.mesh_${apall}.device) | ||||||
|  | 	mesh_mesh=$(uci -q get wireless.mesh_${apall}) | ||||||
|  | 	mesh_id=$(uci -q get easymesh.config.mesh_id) | ||||||
|  | 	mobility_domain=$(uci -q get easymesh.config.mobility_domain) | ||||||
|  | 	key=$(uci -q get easymesh.config.key) | ||||||
|  | 	encryption=$(uci -q get easymesh.config.encryption) | ||||||
|  |  | ||||||
|  | 	if [ "$mesh_nwi_mesh" != "interface" ]; then | ||||||
|  | 		uci set network.nwi_mesh_$apall=interface | ||||||
|  | 		uci set network.nwi_mesh_$apall.proto='batadv_hardif' | ||||||
|  | 		uci set network.nwi_mesh_$apall.master='bat0' | ||||||
|  | 		uci set network.nwi_mesh_$apall.mtu='1536' | ||||||
|  | 		uci commit network | ||||||
|  | 	fi | ||||||
|  |  | ||||||
|  | 	if [ "$mesh_mesh" != "wifi-iface" ]; then | ||||||
|  | 		uci set wireless.mesh_$apall=wifi-iface | ||||||
|  | 		uci set wireless.mesh_$apall.device=$apall | ||||||
|  | 		uci set wireless.mesh_$apall.ifname=mesh_${apall} | ||||||
|  | 		uci set wireless.mesh_$apall.network=nwi_mesh_${apall} | ||||||
|  | 		uci set wireless.mesh_$apall.mode='mesh' | ||||||
|  | 		uci set wireless.mesh_$apall.mesh_id=$mesh_id | ||||||
|  | 		uci set wireless.mesh_$apall.mesh_fwding='0' | ||||||
|  | 		uci set wireless.mesh_$apall.mesh_ttl='1' | ||||||
|  | 		uci set wireless.mesh_$apall.mcast_rate='24000' | ||||||
|  | 		uci set wireless.mesh_$apall.disabled='0' | ||||||
|  | 		uci commit wireless | ||||||
|  | 	fi | ||||||
|  |  | ||||||
|  | 	if [ "$mesh_mesh" = "wifi-iface" ]; then | ||||||
|  | 		if [ "$mesh_apRadio" != "$apall" ]; then | ||||||
|  | 			uci set wireless.mesh_$apall.device=$apall | ||||||
|  | 			uci commit wireless | ||||||
|  | 		fi | ||||||
|  | 	fi | ||||||
|  |  | ||||||
|  | 	if [ "$encryption" != 1 ]; then | ||||||
|  | 		uci set wireless.mesh_$apall.encryption='none' | ||||||
|  | 		uci commit wireless | ||||||
|  | 	else | ||||||
|  | 		uci set wireless.mesh_$apall.encryption='sae' | ||||||
|  | 		uci set wireless.mesh_$apall.key=$key | ||||||
|  | 		uci commit wireless | ||||||
|  | 	fi | ||||||
|  | } | ||||||
|  |  | ||||||
|  | add_kvr() { | ||||||
|  | 	kvr=$(uci -q get easymesh.config.kvr) | ||||||
|  | 	mobility_domain=$(uci -q get easymesh.config.mobility_domain) | ||||||
|  | 	iapp=$(uci -q get easymesh.config.iapp) | ||||||
|  | 	for apall in $(uci -X show wireless | grep wifi-device | awk -F'[.=]' '{print $2}'); do | ||||||
|  | 		if [ "$kvr" = 1 ]; then | ||||||
|  | 			uci set wireless.default_$apall.ieee80211k='1' | ||||||
|  | 			uci set wireless.default_$apall.rrm_neighbor_report='1' | ||||||
|  | 			uci set wireless.default_$apall.rrm_beacon_report='1' | ||||||
|  | 			uci set wireless.default_$apall.ieee80211v='1' | ||||||
|  | 			uci set wireless.default_$apall.bss_transition='1' | ||||||
|  | 			uci set wireless.default_$apall.ieee80211r='1' | ||||||
|  | 			uci set wireless.default_$apall.encryption='psk2+ccmp' | ||||||
|  | 			uci set wireless.default_$apall.mobility_domain=$mobility_domain | ||||||
|  | 			uci set wireless.default_$apall.ft_over_ds='1' | ||||||
|  | 			uci set wireless.default_$apall.ft_psk_generate_local='1' | ||||||
|  | 			uci commit wireless | ||||||
|  | 		else | ||||||
|  | 			uci -q delete wireless.default_$apall.ieee80211k | ||||||
|  | 			uci -q delete wireless.default_$apall.ieee80211v | ||||||
|  | 			uci -q delete wireless.default_$apall.ieee80211r | ||||||
|  | 			uci commit wireless | ||||||
|  | 		fi | ||||||
|  | 		if [ "$iapp" = 1 ]; then | ||||||
|  | 			uci set wireless.default_$apall.iapp_interface='br-lan' | ||||||
|  | 			uci commit wireless | ||||||
|  | 		else | ||||||
|  | 			uci -q delete wireless.default_$apall.iapp_interface | ||||||
|  | 			uci commit wireless | ||||||
|  | 		fi | ||||||
|  | 	done | ||||||
|  | } | ||||||
|  |  | ||||||
|  | add_dawn() { | ||||||
|  | 	kvr=$(uci -q get easymesh.config.kvr) | ||||||
|  | 	rssi_val=$(uci -q get easymesh.config.rssi_val) | ||||||
|  | 	low_rssi_val=$(uci -q get easymesh.config.low_rssi_val) | ||||||
|  |  | ||||||
|  | 	if [ "$kvr" = 1 ]; then | ||||||
|  | 		uci set dawn.@metric[0].rssi_val=$rssi_val | ||||||
|  | 		uci set dawn.@metric[0].low_rssi_val=$low_rssi_val | ||||||
|  | 		uci commit dawn | ||||||
|  | 		/etc/init.d/dawn enable && /etc/init.d/dawn start | ||||||
|  | 	else | ||||||
|  | 		/etc/init.d/dawn stop && /etc/init.d/dawn disable | ||||||
|  | 	fi | ||||||
|  | } | ||||||
|  |  | ||||||
|  | set_easymesh() { | ||||||
|  | 	load_easymesh_config | ||||||
|  | 	if [ "$enable" = 1 ]; then | ||||||
|  | 		if [ "$mesh_bat0" != "interface" ]; then | ||||||
|  | 			uci set network.bat0=interface | ||||||
|  | 			uci set network.bat0.proto='batadv' | ||||||
|  | 			uci set network.bat0.routing_algo='BATMAN_IV' | ||||||
|  | 			uci set network.bat0.aggregated_ogms='1' | ||||||
|  | 			uci set network.bat0.ap_isolation='0' | ||||||
|  | 			uci set network.bat0.bonding='0' | ||||||
|  | 			uci set network.bat0.bridge_loop_avoidance='1' | ||||||
|  | 			uci set network.bat0.distributed_arp_table='1' | ||||||
|  | 			uci set network.bat0.fragmentation='1' | ||||||
|  | 			# uci set network.bat0.gw_bandwidth='10000/2000' | ||||||
|  | 			# uci set network.bat0.gw_sel_class='20' | ||||||
|  | 			uci set network.bat0.hop_penalty='30' | ||||||
|  | 			uci set network.bat0.isolation_mark='0x00000000/0x00000000' | ||||||
|  | 			uci set network.bat0.log_level='0' | ||||||
|  | 			uci set network.bat0.multicast_fanout='16' | ||||||
|  | 			uci set network.bat0.multicast_mode='1' | ||||||
|  | 			uci set network.bat0.network_coding='0' | ||||||
|  | 			uci set network.bat0.orig_interval='1000' | ||||||
|  |  | ||||||
|  | 			if [ "$role" = "server" ]; then | ||||||
|  | 				uci set network.bat0.gw_mode='server' | ||||||
|  | 			elif [ "$role" = "client" ]; then | ||||||
|  | 				uci set network.bat0.gw_mode='client' | ||||||
|  | 			else | ||||||
|  | 				uci set network.bat0.gw_mode='off' | ||||||
|  | 			fi | ||||||
|  |  | ||||||
|  | 			if [ "$brlan" = "br-lan" ]; then | ||||||
|  | 				uci add_list network.@device[0].ports='bat0' | ||||||
|  | 			else | ||||||
|  | 				uci set network.lan.ifname="${lan} bat0" | ||||||
|  | 			fi | ||||||
|  | 			uci commit network | ||||||
|  | 		fi | ||||||
|  |  | ||||||
|  | 		if [ "$apRadio" = "all" ]; then | ||||||
|  | 			for apall in $(uci -X show wireless | grep wifi-device | awk -F'[.=]' '{print $2}'); do | ||||||
|  | 				add_wifi_mesh | ||||||
|  | 			done | ||||||
|  | 		else | ||||||
|  | 			apall=$apRadio | ||||||
|  | 			add_wifi_mesh | ||||||
|  | 		fi | ||||||
|  |  | ||||||
|  | 		add_kvr | ||||||
|  | 		add_dawn | ||||||
|  |  | ||||||
|  | 		if [ "$ap_mode" = 1 ]; then | ||||||
|  | 			if [ "$ap_ipaddr" != "$ipaddr" ]; then | ||||||
|  | 				uci set network.lan.ipaddr=$ipaddr | ||||||
|  | 				uci set network.lan.netmask=$netmask | ||||||
|  | 				uci set network.lan.gateway=$gateway | ||||||
|  | 				uci add_list network.lan.dns=$dns | ||||||
|  | 				uci commit network | ||||||
|  |  | ||||||
|  | 				echo "" >/etc/easymesh | ||||||
|  | 				echo "$ipaddr" >/etc/easymesh | ||||||
|  | 				echo "$dns" >>/etc/easymesh | ||||||
|  |  | ||||||
|  | 				uci set dhcp.lan.dynamicdhcp='0' | ||||||
|  | 				uci set dhcp.lan.ignore='1' | ||||||
|  | 				uci -q delete dhcp.lan.ra | ||||||
|  | 				uci -q delete dhcp.lan.dhcpv6 | ||||||
|  | 				uci -q delete dhcp.lan.ra_management | ||||||
|  | 				uci commit dhcp | ||||||
|  |  | ||||||
|  | 				/etc/init.d/odhcpd stop && /etc/init.d/odhcpd disable | ||||||
|  | 				/etc/init.d/firewall stop && /etc/init.d/firewall disable >/dev/null 2>&1 | ||||||
|  | 			fi | ||||||
|  | 		else | ||||||
|  | 			ap_mode_stop | ||||||
|  | 		fi | ||||||
|  | 	else | ||||||
|  | 		if [ "$mesh_bat0" = "interface" ]; then | ||||||
|  | 			uci -q delete network.bat0 | ||||||
|  | 			if [ "$brlan" = "br-lan" ]; then | ||||||
|  | 				uci -q del_list network.@device[0].ports='bat0' | ||||||
|  | 			else | ||||||
|  | 				sed -i 's/ bat0//' /etc/config/network | ||||||
|  | 			fi | ||||||
|  | 			uci commit network | ||||||
|  | 		fi | ||||||
|  |  | ||||||
|  | 		for apall in $(uci -X show wireless | grep wifi-device | awk -F'[.=]' '{print $2}'); do | ||||||
|  | 			mesh_nwi_mesh=$(uci -q get network.nwi_mesh_${apall}) | ||||||
|  | 			mesh_mesh=$(uci -q get wireless.mesh_${apall}) | ||||||
|  |  | ||||||
|  | 			if [ "$mesh_nwi_mesh" = "interface" ]; then | ||||||
|  | 				uci -q delete network.nwi_mesh_$apall | ||||||
|  | 				uci commit network | ||||||
|  | 			fi | ||||||
|  |  | ||||||
|  | 			if [ "$mesh_mesh" = "wifi-iface" ]; then | ||||||
|  | 				uci -q delete wireless.mesh_$apall | ||||||
|  | 				uci commit wireless | ||||||
|  | 			fi | ||||||
|  | 		done | ||||||
|  |  | ||||||
|  | 		add_kvr | ||||||
|  | 		add_dawn | ||||||
|  |  | ||||||
|  | 		if [ "$ap_mode" = 1 ]; then | ||||||
|  | 			ap_mode_stop | ||||||
|  | 		fi | ||||||
|  | 	fi | ||||||
|  | 	/etc/init.d/network restart | ||||||
|  | } | ||||||
|  |  | ||||||
|  | start() { | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | stop() { | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | restart() { | ||||||
|  | 	set_easymesh | ||||||
|  | } | ||||||
							
								
								
									
										11
									
								
								luci-app-easymesh/root/etc/uci-defaults/luci-easymesh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										11
									
								
								luci-app-easymesh/root/etc/uci-defaults/luci-easymesh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,11 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | uci -q batch <<-EOF >/dev/null | ||||||
|  | 	delete ucitrack.@easymesh[-1] | ||||||
|  | 	add ucitrack easymesh | ||||||
|  | 	set ucitrack.@easymesh[-1].init=easymesh | ||||||
|  | 	commit ucitrack | ||||||
|  | EOF | ||||||
|  |  | ||||||
|  | rm -f /tmp/luci-indexcache | ||||||
|  | exit 0 | ||||||
| @ -0,0 +1,11 @@ | |||||||
|  | { | ||||||
|  |     "luci-app-easymesh": { | ||||||
|  |         "description": "Grant UCI access for luci-app-easymesh", | ||||||
|  |         "read": { | ||||||
|  |             "uci": [ "easymesh" ] | ||||||
|  |         }, | ||||||
|  |         "write": { | ||||||
|  |             "uci": [ "easymesh" ] | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										68
									
								
								quickstart/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								quickstart/Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,68 @@ | |||||||
|  | # | ||||||
|  | # Copyright (C) 2015-2016 OpenWrt.org | ||||||
|  | # Copyright (C) 2020 jjm2473@gmail.com | ||||||
|  | # | ||||||
|  | # This is free software, licensed under the GNU General Public License v3. | ||||||
|  | # | ||||||
|  |  | ||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
|  | PKG_ARCH_quickstart:=$(ARCH) | ||||||
|  |  | ||||||
|  | PKG_NAME:=quickstart | ||||||
|  | PKG_VERSION:=0.8.9 | ||||||
|  | PKG_RELEASE:=1 | ||||||
|  | PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz | ||||||
|  | PKG_SOURCE_URL:=https://github.com/linkease/istore-packages/releases/download/prebuilt/ | ||||||
|  | PKG_HASH:=ed929e653176f6a0115e35d50cbdaa8631b2c13c56f6264045959a02dba5f0af | ||||||
|  |  | ||||||
|  | PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-binary-$(PKG_VERSION) | ||||||
|  |  | ||||||
|  | PKG_BUILD_PARALLEL:=1 | ||||||
|  | PKG_USE_MIPS16:=0 | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/package.mk | ||||||
|  |  | ||||||
|  | define Package/$(PKG_NAME) | ||||||
|  | 	SECTION:=net | ||||||
|  | 	CATEGORY:=Network | ||||||
|  | 	SUBMENU:=Web Servers/Proxies | ||||||
|  | 	TITLE:=Quickstart, the quick start. | ||||||
|  | 	DEPENDS:=@(x86_64||aarch64||arm) +shadow-utils +shadow-useradd +mount-utils +block-mount +lsblk +e2fsprogs +parted +smartmontools +smartd +mdadm +ip-full +ubus +uci +bash | ||||||
|  | 	URL:=https://easepi.linkease.com/ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/$(PKG_NAME)/description | ||||||
|  |   Quickstart is a dashboard & user guide | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/$(PKG_NAME)/conffiles | ||||||
|  | /etc/config/quickstart | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/$(PKG_NAME)/postinst | ||||||
|  | #!/bin/sh | ||||||
|  | if [ -z "$${IPKG_INSTROOT}" ]; then | ||||||
|  | 	if [ -f /etc/uci-defaults/09-quickstart ]; then | ||||||
|  | 		chmod 755 /etc/uci-defaults/09-quickstart | ||||||
|  | 		/etc/uci-defaults/09-quickstart && rm -f /etc/uci-defaults/09-quickstart | ||||||
|  | 	fi | ||||||
|  | fi | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Configure | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Compile | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/$(PKG_NAME)/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/uci-defaults $(1)/etc/hotplug.d/block $(1)/etc/config | ||||||
|  | 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/quickstart.$(PKG_ARCH_quickstart) $(1)/usr/sbin/quickstart | ||||||
|  | 	$(INSTALL_BIN) ./files/quickstart.init $(1)/etc/init.d/quickstart | ||||||
|  | 	$(INSTALL_BIN) ./files/quickstart.uci-default $(1)/etc/uci-defaults/09-quickstart | ||||||
|  | 	$(INSTALL_BIN) ./files/quickstart.hotplug $(1)/etc/hotplug.d/block/09-quickstart | ||||||
|  | 	$(INSTALL_CONF) ./files/quickstart.config $(1)/etc/config/quickstart | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | $(eval $(call BuildPackage,$(PKG_NAME))) | ||||||
							
								
								
									
										1
									
								
								quickstart/files/quickstart.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								quickstart/files/quickstart.config
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | config quickstart 'main' | ||||||
							
								
								
									
										3
									
								
								quickstart/files/quickstart.hotplug
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								quickstart/files/quickstart.hotplug
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | if [ "$ACTION" = "add" -o "$ACTION" = "remove" ]; then | ||||||
|  |     quickstart blockChange | ||||||
|  | fi | ||||||
							
								
								
									
										13
									
								
								quickstart/files/quickstart.init
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										13
									
								
								quickstart/files/quickstart.init
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,13 @@ | |||||||
|  | #!/bin/sh /etc/rc.common | ||||||
|  |  | ||||||
|  | START=92 | ||||||
|  | USE_PROCD=1 | ||||||
|  |   | ||||||
|  |  | ||||||
|  | start_service() {  | ||||||
|  | 	procd_open_instance | ||||||
|  | 	procd_set_param command /usr/sbin/quickstart serve --unix /var/run/quickstart/local.sock | ||||||
|  | 	procd_set_param stderr 1 | ||||||
|  | 	procd_set_param respawn | ||||||
|  | 	procd_close_instance | ||||||
|  | } | ||||||
							
								
								
									
										8
									
								
								quickstart/files/quickstart.uci-default
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								quickstart/files/quickstart.uci-default
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | if [ "$PKG_UPGRADE" = 1 ]; then | ||||||
|  |     /etc/init.d/quickstart enable | ||||||
|  |     /etc/init.d/quickstart start | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | exit 0 | ||||||
		Reference in New Issue
	
	Block a user
	 actions-user
					actions-user