diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2011-08-04 12:21:32 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2011-08-04 12:22:53 +0000 |
commit | 0b605e179eaede6f1d22abf63147a7e5059a26b5 (patch) | |
tree | b1b98481b51b02744f19ddf017cc3dcb4f4c4e6c /aports.lua | |
parent | 4335602da9641f670a81a3ce23324acacb91e3a3 (diff) | |
download | abuild-0b605e179eaede6f1d22abf63147a7e5059a26b5.tar.gz abuild-0b605e179eaede6f1d22abf63147a7e5059a26b5.tar.bz2 abuild-0b605e179eaede6f1d22abf63147a7e5059a26b5.tar.xz abuild-0b605e179eaede6f1d22abf63147a7e5059a26b5.zip |
aports.lua: parse source strings
Diffstat (limited to 'aports.lua')
-rwxr-xr-x | aports.lua | 41 |
1 files changed, 38 insertions, 3 deletions
@@ -1,6 +1,6 @@ module(..., package.seeall) -local function split(str) +local function split_subpkgs(str) local t = {} local e if (str == nil) then @@ -12,16 +12,28 @@ local function split(str) return t end +local function split(str) + local t = {} + local e + if (str == nil) then + return nil + end + for e in string.gmatch(str, "%S+") do + t[#t + 1] = e + end + return t +end + local function split_apkbuild(line) local r = {} - local dir,pkgname, pkgver, pkgrel, arch, depends, makedepends, subpackages, source = string.match(line, "([^|]*)|([^|]*)|([^|]*)|([^|]*)|([^|]*)|([^|]*)|([^|]*)|([^|]*)") + local dir,pkgname, pkgver, pkgrel, arch, 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.subpackages = split_subpkgs(subpackages) r.source = split(source) return r end @@ -86,6 +98,29 @@ function all_deps(p) return m end +function is_remote(url) + local _,pref + for _,pref in pairs{ "^http://", "^ftp://", "^https://" } do + if string.match(url, pref) then + return true + end + end + return false +end + +-- iterate over all entries in source and execute the function for remote +function foreach_remote_source(p, func) + local _,s + if p == nil or type(p.source) ~= "table" then + return + end + for _,url in pairs(p.source) do + if is_remote(url) then + func(url) + end + end +end + local function init_apkdb(repodirs) local pkgdb = {} local revdeps = {} |