diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua index 93d7c73b0..2fd24d0fd 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua @@ -1,8 +1,8 @@ local api = require "luci.passwall.api" local appname = api.appname local sys = api.sys -local has_v2ray = api.is_finded("v2ray") -local has_xray = api.is_finded("xray") +local has_v2ray = api.finded_com("v2ray") +local has_xray = api.finded_com("xray") local has_chnlist = api.fs.access("/usr/share/passwall/rules/chnlist") m = Map(appname) diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua index 78b289533..9a8a77ab3 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua @@ -2,8 +2,8 @@ local api = require "luci.passwall.api" local appname = api.appname local uci = api.uci local datatypes = api.datatypes -local has_v2ray = api.is_finded("v2ray") -local has_xray = api.is_finded("xray") +local has_v2ray = api.finded_com("v2ray") +local has_xray = api.finded_com("xray") local has_chnlist = api.fs.access("/usr/share/passwall/rules/chnlist") m = Map(appname) diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe.lua index 033a15903..4f75fa01f 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe.lua @@ -3,9 +3,9 @@ local appname = api.appname local has_ss = api.is_finded("ss-redir") local has_ss_rust = api.is_finded("sslocal") local has_trojan_plus = api.is_finded("trojan-plus") -local has_v2ray = api.is_finded("v2ray") -local has_xray = api.is_finded("xray") -local has_trojan_go = api.is_finded("trojan-go") +local has_v2ray = api.finded_com("v2ray") +local has_xray = api.finded_com("xray") +local has_trojan_go = api.finded_com("trojan-go") local ss_aead_type = {} local trojan_type = {} if has_ss then diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe_config.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe_config.lua index 029259633..7cce38ee5 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe_config.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe_config.lua @@ -4,9 +4,9 @@ local sys = api.sys local has_ss = api.is_finded("ss-redir") local has_ss_rust = api.is_finded("sslocal") local has_trojan_plus = api.is_finded("trojan-plus") -local has_v2ray = api.is_finded("v2ray") -local has_xray = api.is_finded("xray") -local has_trojan_go = api.is_finded("trojan-go") +local has_v2ray = api.finded_com("v2ray") +local has_xray = api.finded_com("xray") +local has_trojan_go = api.finded_com("trojan-go") local ss_aead_type = {} local trojan_type = {} if has_ss then diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua index 3b646a5d2..c6a648a7a 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua @@ -1,8 +1,8 @@ local api = require "luci.passwall.api" local appname = api.appname local fs = api.fs -local has_v2ray = api.is_finded("v2ray") -local has_xray = api.is_finded("xray") +local has_v2ray = api.finded_com("v2ray") +local has_xray = api.finded_com("xray") local has_fw3 = api.is_finded("fw3") local has_fw4 = api.is_finded("fw4") diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/rule.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/rule.lua index 378f7e179..78ecd2455 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/rule.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/rule.lua @@ -1,7 +1,7 @@ local api = require "luci.passwall.api" local appname = api.appname -local has_v2ray = api.is_finded("v2ray") -local has_xray = api.is_finded("xray") +local has_v2ray = api.finded_com("v2ray") +local has_xray = api.finded_com("xray") m = Map(appname) -- [[ Rule Settings ]]-- diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/socks_config.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/socks_config.lua index 1fc76c938..3f3960f0d 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/socks_config.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/socks_config.lua @@ -1,8 +1,8 @@ local api = require "luci.passwall.api" local appname = api.appname local uci = api.uci -local has_v2ray = api.is_finded("v2ray") -local has_xray = api.is_finded("xray") +local has_v2ray = api.finded_com("v2ray") +local has_xray = api.finded_com("xray") m = Map(appname) diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/brook.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/brook.lua index 41fc2f096..2956488b2 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/brook.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/brook.lua @@ -2,7 +2,7 @@ local m, s = ... local api = require "luci.passwall.api" -if not api.is_finded("brook") then +if not api.finded_com("brook") then return end diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria.lua index 87f5afa87..293ef5588 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria.lua @@ -2,7 +2,7 @@ local m, s = ... local api = require "luci.passwall.api" -if not api.is_finded("hysteria") then +if not api.finded_com("hysteria") then return end diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua index 586f91c3d..21e44c90e 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua @@ -2,7 +2,7 @@ local m, s = ... local api = require "luci.passwall.api" -if not api.is_finded("xray") and not api.is_finded("v2ray") then +if not api.finded_com("xray") and not api.finded_com("v2ray") then return end @@ -79,10 +79,10 @@ local header_type_list = { -- [[ Xray ]] -if api.is_finded("xray") then +if api.finded_com("xray") then s.fields["type"]:value("Xray", translate("Xray")) end -if api.is_finded("v2ray") then +if api.finded_com("v2ray") then s.fields["type"]:value("V2ray", translate("V2ray")) end diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/trojan-go.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/trojan-go.lua index 215ac1379..4b6096b77 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/trojan-go.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/trojan-go.lua @@ -2,7 +2,7 @@ local m, s = ... local api = require "luci.passwall.api" -if not api.is_finded("trojan-go") then +if not api.finded_com("trojan-go") then return end diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/brook.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/brook.lua index 5e2e52ab8..ec2781d3c 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/brook.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/brook.lua @@ -2,7 +2,7 @@ local m, s = ... local api = require "luci.passwall.api" -if not api.is_finded("brook") then +if not api.finded_com("brook") then return end diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/hysteria.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/hysteria.lua index 960e363df..afca9c71b 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/hysteria.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/hysteria.lua @@ -2,7 +2,7 @@ local m, s = ... local api = require "luci.passwall.api" -if not api.is_finded("hysteria") then +if not api.finded_com("hysteria") then return end diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/ray.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/ray.lua index 6199d57ee..d951499f8 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/ray.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/ray.lua @@ -2,7 +2,7 @@ local m, s = ... local api = require "luci.passwall.api" -if not api.is_finded("xray") and not api.is_finded("v2ray")then +if not api.finded_com("xray") and not api.finded_com("v2ray")then return end @@ -74,10 +74,10 @@ local header_type_list = { -- [[ Xray ]] -if api.is_finded("v2ray") then +if api.finded_com("v2ray") then s.fields["type"]:value("V2ray", translate("V2ray")) end -if api.is_finded("xray") then +if api.finded_com("xray") then s.fields["type"]:value("Xray", translate("Xray")) end diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/trojan-go.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/trojan-go.lua index fbd1362fc..6fd4e5f41 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/trojan-go.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/trojan-go.lua @@ -2,7 +2,7 @@ local m, s = ... local api = require "luci.passwall.api" -if not api.is_finded("trojan-go") then +if not api.finded_com("trojan-go") then return end diff --git a/luci-app-passwall/luasrc/passwall/api.lua b/luci-app-passwall/luasrc/passwall/api.lua index d3c508225..eb7170919 100644 --- a/luci-app-passwall/luasrc/passwall/api.lua +++ b/luci-app-passwall/luasrc/passwall/api.lua @@ -397,8 +397,14 @@ function get_customed_path(e) return uci_get_type("global_app", e .. "_file") end +function finded_com(e) + local bin = get_app_path(e) + if not bin then return end + return luci.sys.exec('echo -n $(type -t -p "%s" | head -n1)' % { bin }) +end + function finded(e) - return luci.sys.exec('echo -n $(type -t -p "/bin/%s" -p "/usr/bin/%s" -p "%s" "%s" | head -n1)' % {e, e, get_customed_path(e), e}) + return luci.sys.exec('echo -n $(type -t -p "/bin/%s" -p "/usr/bin/%s" "%s" | head -n1)' % {e, e, e}) end function is_finded(e) @@ -441,10 +447,12 @@ local function get_bin_version_cache(file, cmd) end function get_app_path(app_name) - local def_path = com[app_name].default_path - local path = uci_get_type("global_app", app_name:gsub("%-","_") .. "_file") - path = path and (#path>0 and path or def_path) or def_path - return path + if com[app_name] then + local def_path = com[app_name].default_path + local path = uci_get_type("global_app", app_name:gsub("%-","_") .. "_file") + path = path and (#path>0 and path or def_path) or def_path + return path + end end function get_app_version(app_name, file) diff --git a/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm b/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm index a4e7616e5..4c19f26fc 100644 --- a/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm +++ b/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm @@ -1,8 +1,8 @@ <%+cbi/valueheader%> <% local api = require "luci.passwall.api" -local has_v2ray = api.is_finded("v2ray") -local has_xray = api.is_finded("xray") +local has_v2ray = api.finded_com("v2ray") +local has_xray = api.finded_com("xray") -%>