libs/lpk: Initial CLI

This commit is contained in:
Steven Barth 2008-07-28 15:16:44 +00:00
parent db4447af91
commit 1f3700085c
4 changed files with 73 additions and 29 deletions

View 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

View 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
else
tab[ jopt ] = arg[ k + 1 ]
end
else
tab[ jopt ] = true
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
y = y + 1
end
else
table.insert(args, v)
end
end
return tab, args
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 ] = true
end
y = y + 1
end
elseif #v > 0 then
table.insert(args, v)
end
end
return tab, args
end

View file

@ -0,0 +1 @@
backend.model = "ipkg"

2
libs/lpk/root/usr/bin/lpk Executable file
View file

@ -0,0 +1,2 @@
#!/usr/bin/lua
require("luci.lpk")