diff options
author | Andrew Manison <amanison@anselsystems.com> | 2012-01-03 07:51:02 +0000 |
---|---|---|
committer | Andrew Manison <amanison@anselsystems.com> | 2012-01-03 07:51:02 +0000 |
commit | 12ad231161f7f816c875ea3dd46d135fd20a5d1c (patch) | |
tree | 3daf8ecaa5428dece7099e6b64bb7657186b0b8c /aport.lua | |
parent | 729bf5217292d082dcadf37a7e19424a156eca5d (diff) | |
download | aports-12ad231161f7f816c875ea3dd46d135fd20a5d1c.tar.bz2 aports-12ad231161f7f816c875ea3dd46d135fd20a5d1c.tar.xz |
aports tree: Removed QA build scripts to new repo
Diffstat (limited to 'aport.lua')
-rwxr-xr-x | aport.lua | 244 |
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 - |