Merge pull request #977 from stangri/luci-app-vpnbypass
authorHannu Nyman <hannu.nyman@iki.fi>
Fri, 27 Jan 2017 13:31:48 +0000 (15:31 +0200)
committerGitHub <noreply@github.com>
Fri, 27 Jan 2017 13:31:48 +0000 (15:31 +0200)
luci-app-vpnbypass: initial commit of companion app to vpnbypass package

applications/luci-app-vpnbypass/Makefile [new file with mode: 0644]
applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua [new file with mode: 0644]
applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua [new file with mode: 0644]
applications/luci-app-vpnbypass/root/etc/uci-defaults/40_luci-vpnbypass [new file with mode: 0644]

diff --git a/applications/luci-app-vpnbypass/Makefile b/applications/luci-app-vpnbypass/Makefile
new file mode 100644 (file)
index 0000000..58b3d30
--- /dev/null
@@ -0,0 +1,44 @@
+# Copyright (c) 2017 Stan Grishin (stangri@melmac.net)
+# This is free software, licensed under the GNU General Public License v3.
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=luci-app-vpnbypass
+PKG_VERSION:=1.0.0
+PKG_RELEASE:=3
+PKG_LICENSE:=GPL-3.0+
+PKG_MAINTAINER:=Stan Grishin <stangri@melmac.net>
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/luci-app-vpnbypass
+  SECTION:=luci
+  CATEGORY:=LuCI
+  SUBMENU:=3. Applications
+  TITLE:=VPN Bypass Web UI
+  DEPENDS:=+luci-mod-admin-full +vpnbypass
+  PKGARCH:=all
+endef
+
+define Package/luci-app-vpnbypass/description
+ This package will install VPN Bypass Web UI.
+endef
+
+define Build/Prepare
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+endef
+
+define Package/luci-app-vpnbypass/install
+       $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller/
+       $(INSTALL_BIN) ./luasrc/controller/vpnbypass.lua  $(1)/usr/lib/lua/luci/controller/vpnbypass.lua
+       $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/
+       $(INSTALL_BIN) ./luasrc/model/cbi/vpnbypass.lua $(1)/usr/lib/lua/luci/model/cbi/vpnbypass.lua
+endef
+
+$(eval $(call BuildPackage,luci-app-vpnbypass))
\ No newline at end of file
diff --git a/applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua b/applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua
new file mode 100644 (file)
index 0000000..6becd67
--- /dev/null
@@ -0,0 +1,8 @@
+module("luci.controller.vpnbypass", package.seeall)
+function index()
+       if not nixio.fs.access("/etc/config/vpnbypass") then
+               return
+       end
+       entry({"admin", "services", "vpnbypass"}, cbi("vpnbypass"), translate("VPN Bypass"), 1)
+end
+
diff --git a/applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua b/applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua
new file mode 100644 (file)
index 0000000..1957948
--- /dev/null
@@ -0,0 +1,35 @@
+m = Map("vpnbypass", translate("VPN Bypass Settings"), translate("Configuration of VPN Bypass Settings"))
+s = m:section(NamedSection, "config", "vpnbypass")
+
+-- General options
+o1 = s:option(Flag, "enabled", translate("Enable VPN Bypass"))
+o1.rmempty = false
+o1.default = 0
+
+-- Local Ports
+p1 = s:option(DynamicList, "localport", translate("Local Ports to Bypass"), translate("Local ports to trigger VPN Bypass"))
+p1.addremove = true
+p1.optional = true
+
+-- Remote Ports
+p2 = s:option(DynamicList, "remoteport", translate("Remote Ports to Bypass"), translate("Remote ports to trigger VPN Bypass"))
+p2.addremove = true
+p2.optional = true
+
+-- Local Subnets
+r1 = s:option(DynamicList, "localsubnet", translate("Local IP Subnets to Bypass"), translate("Local IP ranges with direct internet access (outside of the VPN tunnel)"))
+r1.addremove = true
+r1.optional = true
+
+-- Remote Subnets
+r2 = s:option(DynamicList, "remotesubnet", translate("Remote IP Subnets to Bypass"), translate("Remote IP ranges which will be accessed directly (outside of the VPN tunnel)"))
+r2.addremove = true
+r2.optional = true
+
+-- Domains
+d1 = s:option(DynamicList, "domain", translate("Domains to Bypass"), translate("Domains which will be accessed directly (outside of the VPN tunnel)"))
+d1.addremove = true
+d1.optional = true
+
+return m
+
diff --git a/applications/luci-app-vpnbypass/root/etc/uci-defaults/40_luci-vpnbypass b/applications/luci-app-vpnbypass/root/etc/uci-defaults/40_luci-vpnbypass
new file mode 100644 (file)
index 0000000..9455701
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+uci -q batch <<-EOF >/dev/null
+       delete ucitrack.@vpnbypass[-1]
+       add ucitrack vpnbypass
+       set ucitrack.@vpnbypass[-1].init=vpnbypass
+       commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
+