From 0b605e179eaede6f1d22abf63147a7e5059a26b5 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Thu, 4 Aug 2011 12:21:32 +0000 Subject: aports.lua: parse source strings --- aports.lua | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) (limited to 'aports.lua') diff --git a/aports.lua b/aports.lua index d29f589..87b4cf7 100755 --- a/aports.lua +++ b/aports.lua @@ -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 = {} -- cgit v1.2.3-60-g2f50