浏览代码

Add new package gluon-web-logging (#1153)

(cherry picked from commit 46126de792de57b65bd3015dbc521739a8440182)
kb-light 7 年之前
父节点
当前提交
f3f97b71a4

+ 5 - 0
docs/package/gluon-web-logging.rst

@@ -0,0 +1,5 @@
+gluon-web-logging
+=================
+
+The *gluon-web-logging* package adds a new section to advanced settings
+to allow GUI-based configuration of a remote syslog server.

+ 38 - 0
package/gluon-web-logging/Makefile

@@ -0,0 +1,38 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=gluon-web-logging
+PKG_VERSION:=1
+PKG_RELEASE:=1
+
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
+
+include ../gluon.mk
+
+PKG_CONFIG_DEPENDS += $(GLUON_I18N_CONFIG)
+
+
+define Package/gluon-web-logging
+  SECTION:=gluon
+  CATEGORY:=Gluon
+  DEPENDS:=+gluon-web-admin
+  TITLE:=UI for remote syslog configuration
+endef
+
+define Build/Prepare
+	mkdir -p $(PKG_BUILD_DIR)
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+	$(call GluonBuildI18N,gluon-web-logging,i18n)
+	$(call GluonSrcDiet,./luasrc,$(PKG_BUILD_DIR)/luadest/)
+endef
+
+define Package/gluon-web-logging/install
+	$(CP) $(PKG_BUILD_DIR)/luadest/* $(1)/
+	$(call GluonInstallI18N,gluon-web-logging,$(1))
+endef
+
+$(eval $(call BuildPackage,gluon-web-logging))

+ 15 - 0
package/gluon-web-logging/i18n/de.po

@@ -0,0 +1,15 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid ""
+"If you want to use a remote syslog server, you can set it up here. "
+"Please keep in mind that the data is not encrypted, which may cause "
+"individual-related data to be transmitted unencrypted over the internet."
+msgstr ""
+"Wenn du einen Remote-Syslog-Server nutzen möchtest, dann kannst du ihn hier "
+"eintragen. Bitte beachte, dass diese Daten nicht verschlüsselt werden. Dies "
+"kann dazu führen, dass personenbezogene Daten unverschlüsselt über das Internet "
+"übertragen werden."
+
+msgid "Logging"
+msgstr "Logging"

+ 11 - 0
package/gluon-web-logging/i18n/gluon-web-logging.pot

@@ -0,0 +1,11 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid ""
+"If you want to use a remote syslog server, you can set it up here. "
+"Please keep in mind that the data is not encrypted, which may cause "
+"individual-related data to be transmitted unencrypted over the internet."
+msgstr ""
+
+msgid "Logging"
+msgstr ""

+ 1 - 0
package/gluon-web-logging/luasrc/lib/gluon/web/controller/admin/logging.lua

@@ -0,0 +1 @@
+entry({"admin", "logging"}, model("admin/logging"), _("Logging"), 85)

+ 45 - 0
package/gluon-web-logging/luasrc/lib/gluon/web/model/admin/logging.lua

@@ -0,0 +1,45 @@
+local uci = require('simple-uci').cursor()
+local system = uci:get_first('system', 'system')
+
+local f = Form(translate('Logging'), translate(
+	"If you want to use a remote syslog server, you can set it up here. "
+	.. "Please keep in mind that the data is not encrypted, which may cause "
+	.. "individual-related data to be transmitted unencrypted over the internet."
+))
+local s = f:section(Section)
+
+local enable = s:option(Flag, 'log_remote', translate('Enable'))
+enable.default = uci:get_bool('system', system, 'log_remote')
+function enable:write(data)
+	uci:set('system', system, 'log_remote', data)
+end
+
+local ip = s:option(Value, 'log_ip', translate('IP'))
+ip.default = uci:get('system', system, 'log_ip')
+ip:depends(enable, true)
+ip.optional = false
+ip.placeholder = '0.0.0.0'
+ip.datatype = 'ipaddr'
+function ip:write(data)
+	uci:set('system', system, 'log_ip', data)
+end
+
+local port = s:option(Value, 'log_port', translate('Port'))
+port.default = uci:get('system', system, 'log_port')
+port:depends(enable, true)
+port.optional = true
+port.placeholder = 514
+port.datatype = 'irange(1, 65535)'
+function port:write(data)
+	if data ~= nil then
+		uci:set('system', system, 'log_port', data)
+	else
+		uci:delete('system', system, 'log_port')
+	end
+end
+
+function f:write()
+	uci:commit('system')
+end
+
+return f