luci/lpk: Initial commit
[project/luci.git] / libs / lpk / luasrc / lpk.lua
1 module("luci.lpk", package.seeall)
2
3 function getopt( arg, options )
4         local tab = {}
5         local args = {}
6         for k, v in ipairs(arg) do
7         if v:sub(1, 2) == "--" then
8                 local x = v:find( "=", 1, true )
9                 if x then
10                         tab[ v:sub( 3, x-1 ) ] = v:sub( x+1 )
11                 else 
12                     tab[ v:sub( 3 ) ] = true
13                 end
14         elseif v:sub( 1, 1 ) == "-" then
15                 local y = 2
16                 local l = #v
17                 local jopt
18                 while ( y <= l ) do
19                         jopt = v:sub( y, y )
20                         if options:find( jopt, 1, true ) then
21                                 if y < l then
22                                         tab[ jopt ] = v:sub( y+1 )
23                                         y = l
24                                 else
25                                         tab[ jopt ] = arg[ k + 1 ]
26                                 end
27                         else
28                                 tab[ jopt ] = true
29                         end
30                         y = y + 1
31                 end
32     else 
33         table.insert(args, v)
34     end
35   end
36   return tab, args
37 end
38