luci-app-privoxy: modified to support new LuCI structure
authorChristian Schoenebeck <christian.schoenebeck@gmail.com>
Sun, 11 Jan 2015 20:30:50 +0000 (21:30 +0100)
committerChristian Schoenebeck <christian.schoenebeck@gmail.com>
Sun, 11 Jan 2015 20:30:50 +0000 (21:30 +0100)
* Makefile
    - modified to support new LuCI build structure when building i18n support
    - increase "patch" version
* privoxy.lua detail.lua apperror.lua
    - modified version detection
    - removed function ipgk_version()
* new file build/i18n-po2lua.pl
    - copied from luci build system to create lmo language files

Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
net/privoxy-luci/Makefile
net/privoxy-luci/build/i18n-po2lua.pl [new file with mode: 0755]
net/privoxy-luci/files/luasrc/controller/privoxy.lua
net/privoxy-luci/files/luasrc/model/cbi/privoxy/apperror.lua
net/privoxy-luci/files/luasrc/model/cbi/privoxy/detail.lua

index 16a153f95db005c4f6eab8ab41d57ab4ff48a4ab..62163ac797a0d42b804fa2570a0e7687895cfac5 100644 (file)
@@ -2,7 +2,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=luci-app-privoxy
-PKG_VERSION:=1.0.0
+PKG_VERSION:=1.0.1
 #PKG_RELEASE:=0
 
 PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
@@ -22,7 +22,7 @@ define Package/luci-app-privoxy
   CATEGORY:=LuCI
   SUBMENU:=3. Applications
   TITLE:=LuCI support for Privoxy WEB Proxy
-  DEPENDS:=+luci-lib-nixio +luci-mod-admin-full +privoxy
+  DEPENDS:=+luci-mod-admin-full +privoxy
   PKGARCH:=all
 endef
 
@@ -44,8 +44,7 @@ define Build/Compile
        # copy everthing we need ot PKG_INSTALL_DIR
        $(CP) ./* $(PKG_INSTALL_DIR)/
        # due to package dependencies LuCI is compiled first so the needed binary exists
-       $(LN) $(BUILD_DIR)/luci/build/po2lmo $(PKG_INSTALL_DIR)/build/po2lmo
-       $(LN) $(BUILD_DIR)/luci/build/i18n-po2lua.pl $(PKG_INSTALL_DIR)/build/i18n-po2lua.pl
+       $(LN) $(STAGING_DIR_HOST)/bin/po2lmo $(PKG_INSTALL_DIR)/build/po2lmo
        # generate needed .lmo files out of given .po files
        cd $(PKG_INSTALL_DIR); build/i18n-po2lua.pl po files/luasrc/i18n
 endef
diff --git a/net/privoxy-luci/build/i18n-po2lua.pl b/net/privoxy-luci/build/i18n-po2lua.pl
new file mode 100755 (executable)
index 0000000..5129055
--- /dev/null
@@ -0,0 +1,27 @@
+#!/usr/bin/perl
+
+@ARGV == 2 || die "Usage: $0 <source-dir> <dest-dir>\n";
+
+my $source_dir  = shift @ARGV;
+my $target_dir  = shift @ARGV;
+
+if( ! -d $target_dir )
+{
+       system('mkdir', '-p', $target_dir);
+}
+
+if( open F, "find $source_dir -type f -name '*.po' |" )
+{
+       while( chomp( my $file = readline F ) )
+       {
+               my ( $lang, $basename ) = $file =~ m{.+/(\w+)/([^/]+)\.po$};
+               $lang = lc $lang;
+               $lang =~ s/_/-/g;
+
+               printf "Generating %-40s ", "$target_dir/$basename.$lang.lmo";
+               system("./build/po2lmo", $file, "$target_dir/$basename.$lang.lmo");
+               print ( -f "$target_dir/$basename.$lang.lmo" ? "done\n" : "empty\n" );
+       }
+
+       close F;
+}
index 3c78a33a81cdd3ab067aaf6cb10d46a61f84d163..c3854b430997125b7b62532f4036d4db308291e8 100755 (executable)
@@ -22,32 +22,19 @@ local UCI  = require "luci.model.uci"
 local SYS  = require "luci.sys"
 local UTIL = require "luci.util"
 
-version_luci_app = "1.0.0"     -- luci-application / openwrt Makefile compatible version
-version_required = "3.0.22"    -- minimum required service version
+version_luci_app = "1.0.1"     -- luci-application / openwrt Makefile compatible version
+version_required = "3.0.22-1"  -- minimum required service version
 
 function index()
-       local _service  = "privoxy"
-       local _vermin   = "3.0.22"
-       local _verinst
-       local _util     = require "luci.util"
-       local _ipkg     = require "luci.model.ipkg"
-       local _info     = _ipkg.info(_service)
-       for _, v in pairs(_info) do
-               if v.Package == _service and v.Status.installed then
-                       _verinst = v.Version
-                       break
-               end
-       end
-       local _sver = _util.split(_verinst, "[%.%-]", nil, true)
-       local _rver = _util.split(_vermin , "[%.%-]", nil, true)
-
-       -- check config file and version 
-       if not nixio.fs.access("/etc/config/" .. _service )
-           or (tonumber(_sver[1]) or 0) < (tonumber(_rver[1]) or 0)
-           or (tonumber(_sver[2]) or 0) < (tonumber(_rver[2]) or 0)
-           or (tonumber(_sver[3]) or 0) < (tonumber(_rver[3]) or 0)
-           or (tonumber(_sver[4]) or 0) < (tonumber(_rver[4]) or 0) then
-               entry( {"admin", "services", "privoxy"}, cbi("privoxy/apperror", 
+       local _sys      = require "luci.sys"
+       local _vermin   = "3.0.22-1"
+       local _verinst  = _sys.exec([[opkg list-installed ]] .. "privoxy" .. [[ | awk '{print $3}']])
+       local _cmd      = [[opkg compare-versions "]] .. _verinst .. [[" ">=" "]] .. _vermin .. [["]]
+       local _verok    = tonumber(_sys.call(_cmd))
+
+       -- check config file and version
+       if not nixio.fs.access("/etc/config/privoxy") or (_verok == 0) then
+               entry( {"admin", "services", "privoxy"}, cbi("privoxy/apperror",
                        {hideapplybtn=true, hidesavebtn=true, hideresetbtn=true }), _("Privoxy WEB proxy"), 59)
        else
                entry( {"admin", "services", "privoxy"}, cbi("privoxy/detail"), _("Privoxy WEB proxy"), 59)
@@ -122,35 +109,6 @@ function get_theme()
        return nil
 end
 
--- read version information for given package if installed
-function ipkg_version(package)
-       if not package then
-               return nil
-       end
-       local _info = IPKG.info(package)
-       local _data = {}
-       local _version = ""
-       local i = 0
-       for k, v in pairs(_info) do
-               if v.Package == package and v.Status.installed then
-                       _version = v.Version
-                       i = i + 1
-               end
-       end
-       if i > 1 then   -- more then one valid record
-               return _data
-       end
-       local _sver = UTIL.split(_version, "[%.%-]", nil, true)
-       _data = {
-               version = _version,
-               major   = tonumber(_sver[1]) or 0,
-               minor   = tonumber(_sver[2]) or 0,
-               patch   = tonumber(_sver[3]) or 0,
-               build   = tonumber(_sver[4]) or 0
-       }
-       return _data
-end
-
 -- replacement of build-in Flag.parse of cbi.lua
 -- modified to mark section as changed if value changes
 -- current parse did not do this, but it is done AbstaractValue.parse()
index af1bf75234350389944456a7288aa9a3c6df507b..38003c637a79a8686d8734e8f47cadd70a00551b 100755 (executable)
@@ -14,16 +14,19 @@ $Id$
 
 local CTRL = require "luci.controller.privoxy" -- privoxy multiused functions
 local DISP = require "luci.dispatcher"
+local SYS  = require "luci.sys"
 
 -- Build javascript string to be displayed as version information
 local VERSION = translate("Version Information")
                .. [[\n\nluci-app-privoxy]]
                .. [[\n\t]] .. translate("Version") .. [[:\t]] .. CTRL.version_luci_app
-               .. [[\n\t]] .. translate("Build") .. [[:\t]] .. CTRL.ipkg_version("luci-app-privoxy").version
+               .. [[\n\t]] .. translate("Build") .. [[:\t]] 
+               .. SYS.exec([[opkg list-installed ]] .. [[luci_app_privoxy]] .. [[ | awk '{print $3}']])
                .. [[\n\nprivoxy ]] .. translate("required") .. [[:]]
-               .. [[\n\t]] .. translate("Version") .. [[:\t]] .. CTRL.version_required .. [[ ]] .. translate("or higher")
+               .. [[\n\t]] .. translate("Version") .. [[:\t]] .. CTRL.version_required .. [[ ]] .. translate("or greater")
                .. [[\n\nprivoxy ]] .. translate("installed") .. [[:]]
-               .. [[\n\t]] .. translate("Version") .. [[:\t]] .. CTRL.ipkg_version("privoxy").version
+               .. [[\n\t]] .. translate("Version") .. [[:\t]] 
+               .. SYS.exec([[opkg list-installed ]] .. [[privoxy]] .. [[ | awk '{print $3}']])
                .. [[\n\n]]
 local HELP = [[<a href="http://www.privoxy.org/user-manual/config.html#%s" target="_blank">%s</a>]]
 
index 3a8db5a4bebec010df009ce5607844b2b4783e60..5960937ae6b05997a2b099a9a05718f35ef0b78a 100755 (executable)
@@ -25,11 +25,13 @@ local LFLF = (CTRL.get_theme() == "Bootstrap") and [[<br /><br /><br />]] or [[]
 local VERSION = translate("Version Information")
                .. [[\n\nluci-app-privoxy]]
                .. [[\n\t]] .. translate("Version") .. [[:\t]] .. CTRL.version_luci_app
-               .. [[\n\t]] .. translate("Build") .. [[:\t]] .. CTRL.ipkg_version("luci-app-privoxy").version
+               .. [[\n\t]] .. translate("Build") .. [[:\t]] 
+               .. SYS.exec([[opkg list-installed ]] .. [[luci_app_privoxy]] .. [[ | awk '{print $3}']])
                .. [[\n\nprivoxy ]] .. translate("required") .. [[:]]
                .. [[\n\t]] .. translate("Version") .. [[:\t]] .. CTRL.version_required .. [[ ]] .. translate("or greater")
                .. [[\n\nprivoxy ]] .. translate("installed") .. [[:]]
-               .. [[\n\t]] .. translate("Version") .. [[:\t]] .. CTRL.ipkg_version("privoxy").version
+               .. [[\n\t]] .. translate("Version") .. [[:\t]] 
+               .. SYS.exec([[opkg list-installed ]] .. [[privoxy]] .. [[ | awk '{print $3}']])
                .. [[\n\n]]
 local HELP = [[<a href="http://www.privoxy.org/user-manual/config.html#%s" target="_blank">%s</a>]]