libs/lpk: Initial CLI
authorSteven Barth <steven@midlink.org>
Mon, 28 Jul 2008 15:16:44 +0000 (15:16 +0000)
committerSteven Barth <steven@midlink.org>
Mon, 28 Jul 2008 15:16:44 +0000 (15:16 +0000)
libs/lpk/luasrc/lpk.lua
libs/lpk/luasrc/lpk/util.lua
libs/lpk/root/etc/lpk.conf [new file with mode: 0644]
libs/lpk/root/usr/bin/lpk [new file with mode: 0755]

index ae6aefd6b6e46ce0eab0402a38dabdb071bc5a42..56f62f0ca74607fb867ff5d6cb5b0f932265d6d1 100644 (file)
@@ -1,4 +1,43 @@
 module("luci.lpk", package.seeall)
+require("luci.lpk.util")
+require("luci.lpk.core")
+
+__appname__ = "LuCI »lpk« Package Manager"
+__version__ = "0.1"
+__authors__ = "Steven Barth, Jo-Philipp Wich"
+__cpyrght__ = string.format("Copyright (c) 2008 %s", __authors__)
+__welcome__ = string.format("%s v%s\n%s",
+ __appname__, __version__, __cpyrght__)
+
+options, arguments = luci.lpk.util.getopt(arg)
+config = luci.util.dtable()
+
+local cfgdump = loadfile("/etc/lpk.conf")
+if cfgdump then
+       setfenv(cfgdump, config)
+       pcall(cfgdump)
+end
+
+if #arguments < 1 then
+       print(__welcome__)
+       print([[
+       
+Usage:
+ lpk [options] <command> [arguments]
+ lpk [options] install|remove pkg1 [pkg2] [...] [pkgn]
+
+Commands:
+ install       -       Install packages
+ remove                -       Remove packages
+ purge         -       Remove packages and their configuration files
+Options:
+ --force-depends       -       Ignore unresolvable dependencies
+]])
+else
+       -- Start machine
+end
 
 
 
index d398094833aff8ca38ac5419d131d55f5121b69b..50b33e105cf1b86dc4642b0a64c660e7535407c6 100644 (file)
@@ -1,37 +1,39 @@
 module("luci.lpk.util", package.seeall)
 
 function getopt( arg, options )
+       options = options or ""
        local tab = {}
        local args = {}
        for k, v in ipairs(arg) do
-       if v:sub(1, 2) == "--" then
-               local x = v:find( "=", 1, true )
-               if x then
-                       tab[ v:sub( 3, x-1 ) ] = v:sub( x+1 )
-               else 
-                   tab[ v:sub( 3 ) ] = true
-               end
-       elseif v:sub( 1, 1 ) == "-" then
-               local y = 2
-               local l = #v
-               local jopt
-               while ( y <= l ) do
-                       jopt = v:sub( y, y )
-                       if options:find( jopt, 1, true ) then
-                               if y < l then
-                                       tab[ jopt ] = v:sub( y+1 )
-                                       y = l
+               if v:sub(1, 2) == "--" then
+                       local x = v:find( "=", 1, true )
+                       if x then
+                               tab[ v:sub( 3, x-1 ) ] = v:sub( x+1 )
+                       else 
+                           tab[ v:sub( 3 ) ] = true
+                       end
+               elseif v:sub( 1, 1 ) == "-" then
+                       local y = 2
+                       local l = #v
+                       local jopt
+                       while ( y <= l ) do
+                               jopt = v:sub( y, y )
+                               if options:find( jopt, 1, true ) then
+                                       if y < l then
+                                               tab[ jopt ] = v:sub( y+1 )
+                                               y = l
+                                       else
+                                               tab[ jopt ] = arg[ k + 1 ]
+                                               arg[ k + 1 ] = ""
+                                       end
                                else
-                                       tab[ jopt ] = arg[ k + 1 ]
+                                       tab[ jopt ] = true
                                end
-                       else
-                               tab[ jopt ] = true
+                               y = y + 1
                        end
-                       y = y + 1
-               end
-    else 
-       table.insert(args, v)
-    end
-  end
-  return tab, args
+           elseif #v > 0 then
+               table.insert(args, v)
+           end
+       end
+       return tab, args
 end
\ No newline at end of file
diff --git a/libs/lpk/root/etc/lpk.conf b/libs/lpk/root/etc/lpk.conf
new file mode 100644 (file)
index 0000000..7ff49f8
--- /dev/null
@@ -0,0 +1 @@
+backend.model = "ipkg"
\ No newline at end of file
diff --git a/libs/lpk/root/usr/bin/lpk b/libs/lpk/root/usr/bin/lpk
new file mode 100755 (executable)
index 0000000..6e6dcde
--- /dev/null
@@ -0,0 +1,2 @@
+#!/usr/bin/lua
+require("luci.lpk")
\ No newline at end of file