summaryrefslogtreecommitdiffstats
path: root/aport.lua
diff options
context:
space:
mode:
authorAndrew Manison <amanison@anselsystems.com>2012-01-03 07:51:02 +0000
committerAndrew Manison <amanison@anselsystems.com>2012-01-03 07:51:02 +0000
commit12ad231161f7f816c875ea3dd46d135fd20a5d1c (patch)
tree3daf8ecaa5428dece7099e6b64bb7657186b0b8c /aport.lua
parent729bf5217292d082dcadf37a7e19424a156eca5d (diff)
downloadaports-12ad231161f7f816c875ea3dd46d135fd20a5d1c.tar.bz2
aports-12ad231161f7f816c875ea3dd46d135fd20a5d1c.tar.xz
aports tree: Removed QA build scripts to new repo
Diffstat (limited to 'aport.lua')
-rwxr-xr-xaport.lua244
1 files changed, 0 insertions, 244 deletions
diff --git a/aport.lua b/aport.lua
deleted file mode 100755
index 71113475a..000000000
--- a/aport.lua
+++ /dev/null
@@ -1,244 +0,0 @@
-#!/usr/bin/lua
-
-
--- those should be read from some config file
-aportsdir = "~/aports"
-repos = { "main", "testing" }
-
-
-function split(str)
- local t = {}
- if (str == nil) then
- return nil
- end
- for e in string.gmatch(str, "%S+") do
- table.insert(t, e)
- end
- return t
-end
-
-function split_apkbuild(line)
- local r = {}
- local dir, pkgname, pkgver, pkgrel, depends, makedepends, subpackages, source = string.match(line, "([^|]*)|([^|]*)|([^|]*)|([^|]*)|([^|]*)|([^|]*)|([^|]*)")
- r.dir = dir
- r.pkgname = pkgname
- r.pkgver = pkgver
- r.pkgrel = pkgrel
- r.depends = split(depends)
- r.makedepends = split(makedepends)
- r.subpackages = split(subpackages)
- r.source = split(source)
- return r
-end
-
--- parse the APKBUILDs and return a list
-function parse_apkbuilds(dir, repos)
- local i,v, p
- local str=""
- if repos == nil then
- return
- end
- --expand repos
- for i,v in ipairs(repos) do
- str = str..dir.."/"..v.."/*/APKBUILD "
- end
-
- local p = io.popen([[
- for i in ]]..str..[[; do
- pkgname=
- pkgver=
- pkgrel=
- depends=
- makedepends=
- subpackages=
- source=
- dir="${i%/APKBUILD}"
- cd "$dir"
- . ./APKBUILD
- echo $dir\|$pkgname\|$pkgver\|$pkgrel\|$depends\|$makedepends\|$subpackages\|$source
- done
- ]])
- return function()
- local line = p:read("*line")
- if line == nil then
- p:close()
- return nil
- end
- return split_apkbuild(line)
- end
-end
-
-function target_packages(pkgdb, pkgname)
- local i,v
- local t = {}
- for i,v in ipairs(pkgdb[pkgname]) do
- table.insert(t, pkgname.."-"..v.pkgver.."-r"..v.pkgrel..".apk")
- end
- return t
-end
-
-function list_depends( pkg, pkgdb )
- local dl = {}
- local s
- if pkg and not pkg.added then
- pkg.added = true
-
- if pkg.depends then
- for i,v in ipairs(pkg.depends) do
- --print("v = <"..v..">")
- s = list_depends( pkgdb[v], pkgdb )
- if #s > 0 then
- dl[#dl + 1] = s
- end
- end
- end
- if pkg.makedepends then
- for i,v in ipairs(pkg.makedepends) do
- --print("v = {"..v.."}")
- s = list_depends( pkgdb[v], pkgdb )
- if #s > 0 then
- dl[#dl + 1] = s
- end
- end
- end
- dl[#dl + 1] = pkg.pkgname
- end
-
- s = table.concat(dl," ")
- --print("s = ["..s.."]")
- return s
-end
-
-function init_apkdb(aportsdir, repos)
- local pkgdb = {}
- local revdeps = {}
- local a
-
- for a in parse_apkbuilds(aportsdir, repos) do
- -- io.write(a.pkgname.." "..a.pkgver.."\t"..a.dir.."\n")
- if pkgdb[a.pkgname] == nil then
- pkgdb[a.pkgname] = {}
- end
- --table.insert(pkgdb[a.pkgname], a)
- pkgdb[a.pkgname] = a
- --print("pk "..a.pkgname.." is a "..type(a).." ("..pkgdb[a.pkgname].pkgname..")")
- -- add subpackages to package db
- local k,v
- for k,v in ipairs(a.subpackages) do
- if pkgdb[v] == nil then
- pkgdb[v] = {}
- end
- --table.insert(pkgdb[v], a)
- pkgdb[v] = a
- end
- -- add to reverse dependencies
- for k,v in ipairs(a.makedepends) do
- if revdeps[v] == nil then
- revdeps[v] = {}
- end
- table.insert(revdeps[v], a)
- end
- end
- return pkgdb, revdeps
-end
-
--- PKGBUILD import
-function split_pkgbuild(line)
- local r = {}
- local pkgname, pkgver = string.match(line, "([^|]*)|([^|]*)")
- r.pkgname = pkgname
- r.pkgver = pkgver
- return r
-end
-
-function parse_pkgbuilds(dir, repos)
- local i,v, p
- local str=""
- if repos == nil then
- return
- end
- --expand repos
- for i,v in ipairs(repos) do
- str = str..dir.."/"..v.."/*/PKGBUILD "
- end
-
- local p = io.popen([[/bin/bash -c '
- for i in ]]..str..[[; do
- pkgname=
- pkgver=
- source $i
- echo $pkgname\|$pkgver
- done
- ' 2>/dev/null
- ]])
- return function()
- local line = p:read("*line")
- if line == nil then
- p:close()
- return nil
- end
- return split_pkgbuild(line)
- end
-end
-
-function init_absdb(dir, repos)
- local p
- local db = {}
- for p in parse_pkgbuilds(dir, repos) do
- if db[p.pkgname] == nil then
- db[p.pkgname] = {}
- end
- table.insert(db[p.pkgname], p.pkgver)
- end
- return db
-end
-
-
--- Applets -----------------------
-applet = {}
-function applet.revdep(arg)
- local pkg = arg[2]
- if pkg == nil then
- -- usage?
- return nil
- end
- local apkdb, rev = init_apkdb(aportsdir, repos)
- local _,p
- for _,p in ipairs(rev[pkg] or {}) do
- print(p.pkgname)
- end
-end
---absdb = init_absdb("/var/abs", { "core", "extra", "community" })
-
-function applet.deplist(arg)
- local apkdb, rev = init_apkdb(arg[2],{ arg[3] })
-
- local deplist = {}
- local nm,pk
- for nm,pk in pairs(apkdb) do
- local dl
- --print("pk "..nm.." is a "..type(pk).." ("..apkdb[nm].pkgname..")")
- --deplist[#deplist + 1] = "***"
- dl = list_depends(pk,apkdb)
- -- print("deplist for "..nm..": "..deplist)
- if #dl > 0 then
- deplist[#deplist + 1] = dl
- end
- end
- print(table.concat(deplist," "))
-end
-
-cmd = arg[1]
-
-if cmd == nil then
- -- usage
- io.stderr:write( "no command given\n" );
- return
-end
-
-if type(applet[cmd]) == "function" then
- applet[cmd](arg)
-else
- io.stderr:write(cmd..": invalid applet\n")
-end
-