socsvn commit: r270558 - soc2014/pedrosouza/lua_loader/head/sys/boot/lua

pedrosouza at FreeBSD.org pedrosouza at FreeBSD.org
Mon Jul 7 23:10:31 UTC 2014


Author: pedrosouza
Date: Mon Jul  7 23:10:30 2014
New Revision: 270558
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=270558

Log:
  fix config.lua

Modified:
  soc2014/pedrosouza/lua_loader/head/sys/boot/lua/config.lua

Modified: soc2014/pedrosouza/lua_loader/head/sys/boot/lua/config.lua
==============================================================================
--- soc2014/pedrosouza/lua_loader/head/sys/boot/lua/config.lua	Mon Jul  7 22:02:39 2014	(r270557)
+++ soc2014/pedrosouza/lua_loader/head/sys/boot/lua/config.lua	Mon Jul  7 23:10:30 2014	(r270558)
@@ -1,19 +1,23 @@
 config = {};
 
 pattern_table = {
-    [1] = {str = "(%w+)_load%s*=%s*\"([%w%s%p]*)%s*(.*)\"", process = function(k, v) print("Processed(load) -> "..k..":"..v); end },       --module_load="value"
-    [2] = {str = "(%w+)_name%s*=%s*\"([%w%s%p]*)\"%s*(.*)", process = function(k, v) print("Processed(name) -> "..k..":"..v); end },       --module_name="value"
-    [3] = {str = "(%w+)_type%s*=%s*\"([%w%s%p]*)\"%s*(.*)", process = function(k, v) print("Processed(type) -> "..k..":"..v); end },       --module_type="value"
-    [4] = {str = "(%w+)_flags%s*=%s*\"([%w%s%p]*)\"%s*(.*)", process = function(k, v) print("Processed(flags) -> "..k..":"..v); end },      --module_flags="value"
-    [5] = {str = "(%w+)_before%s*=%s*\"([%w%s%p]*)\"%s*(.*)", process = function(k, v) print("Processed(before) -> "..k..":"..v); end }      --module_before="value"
-    [6] = {str = "(%w+)_after%s*=%s*\"([%w%s%p]*)\"%s*(.*)", process = function(k, v) print("Processed(after) -> "..k..":"..v); end },      --module_after="value"
-    [7] = {str = "(%w+)_error%s*=%s*\"([%w%s%p]*)\"%s*(.*)", process = function(k, v) print("Processed(error) -> "..k..":"..v); end }       --module_error="value"
-    [8] = {str = "(%w+)%s*=%s*\"([%w%s%p]*)\"%s*(.*)", process = function(k, v) print("Processed(environment) -> "..k..":"..v); end }             --env_var="value"
+    [1] = {str = "^%s*(#.*)", process = function(k, v) print("Processed(comment) -> "..k.."\n"); end },
+    [2] = {str = "^%s*([%w_]+)_load%s*=%s*\"([%w%s%p]-)\"%s*(.*)", process = function(k, v) print("Processed(load) -> "..k..":"..v.."\n"); end },       --module_load="value"
+    [3] = {str = "^%s*([%w_]+)_name%s*=%s*\"([%w%s%p]-)\"%s*(.*)", process = function(k, v) print("Processed(name) -> "..k..":"..v.."\n"); end },       --module_name="value"
+    [4] = {str = "^%s*([%w_]+)_type%s*=%s*\"([%w%s%p]-)\"%s*(.*)", process = function(k, v) print("Processed(type) -> "..k..":"..v.."\n"); end },       --module_type="value"
+    [5] = {str = "^%s*([%w_]+)_flags%s*=%s*\"([%w%s%p]-)\"%s*(.*)", process = function(k, v) print("Processed(flags) -> "..k..":"..v.."\n"); end },     --module_flags="value"
+    [6] = {str = "^%s*([%w_]+)_before%s*=%s*\"([%w%s%p]-)\"%s*(.*)", process = function(k, v) print("Processed(before) -> "..k..":"..v.."\n"); end },   --module_before="value"
+    [7] = {str = "^%s*([%w_]+)_after%s*=%s*\"([%w%s%p]-)\"%s*(.*)", process = function(k, v) print("Processed(after) -> "..k..":"..v.."\n"); end },     --module_after="value"
+    [8] = {str = "^%s*([%w_]+)_error%s*=%s*\"([%w%s%p]-)\"%s*(.*)", process = function(k, v) print("Processed(error) -> "..k..":"..v.."\n"); end },     --module_error="value"
+    [9] = {str = "^%s*([%w%p]+)%s*=%s*\"([%w%s%p]-)\"%s*(.*)", process = function(k, v) print("Processed(environment) -> "..k..":"..v.."\n"); end }     --env_var="value"
 };
 
 function config.isValidComment(c)
-    local s = string.match(c, "%s*#.*");
-    if s == nil then return false; end
+    if c ~= nil then
+        local s = string.match(c, "^%s*#.*");
+        if s == nil then s = string.match(c, "^%s*$"); end
+        if s == nil then return false; end
+    end
     return true;
 end
 
@@ -38,26 +42,28 @@
     
     for line in string.gmatch(text, "([^\n]+)") do
     
-        local found = false;
-        
-        for i, v in ipairs(pattern_table) do
-            local k, v, c = string.match(line, v.str);
-            if k ~= nil then
-                found = true;
-                
-                if config.isValidComment(c) then
-                    v.process(k, v);
-                else
-                    print("Malformed line ("..n.."):"..line);
+        if string.match(line, "^%s*$") == nil then
+            local found = false;
+            
+            for i, val in ipairs(pattern_table) do
+                local k, v, c = string.match(line, val.str);
+                if k ~= nil then
+                    found = true;
+                    
+                    if config.isValidComment(c) then
+                        val.process(k, v);
+                    else
+                        print("Malformed line ("..n.."):\n\t"..line.."\n");
+                    end
+                    
+                    break;
                 end
-                
-                break;
+            end
+            
+            if found == false then
+                print("Malformed line ("..n.."):\n\t"..line.."\n");
             end
         end
-        
-        if found == false then
-            print("Malformed line ("..n.."):"..line);
-        end
-        
+        n = n + 1;
     end
 end
\ No newline at end of file


More information about the svn-soc-all mailing list