summaryrefslogtreecommitdiffstats
path: root/aports
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2014-01-23 15:53:07 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2014-01-23 15:53:07 +0000
commit6a3e565f81b70a720e5a0f7409c43d4843ce6b36 (patch)
tree2dc1a44fb7afc1b4c8280afab1506c54cd15925b /aports
parenta38f65392bc34cfd036c7af54ed4e550a061157d (diff)
downloadlua-aports-6a3e565f81b70a720e5a0f7409c43d4843ce6b36.tar.bz2
lua-aports-6a3e565f81b70a720e5a0f7409c43d4843ce6b36.tar.xz
apkrepo: new lua mode
add update_index implementation
Diffstat (limited to 'aports')
-rw-r--r--aports/apkrepo.lua27
1 files changed, 27 insertions, 0 deletions
diff --git a/aports/apkrepo.lua b/aports/apkrepo.lua
new file mode 100644
index 0000000..4418670
--- /dev/null
+++ b/aports/apkrepo.lua
@@ -0,0 +1,27 @@
+local M = {}
+
+local lfs = require('lfs')
+
+function M.update_index(dir, arch, description)
+ local indexopt=""
+ local descriptionopt=""
+ local olddir = lfs.currentdir()
+ local archdir = ("%s/%s"):format(dir, arch)
+ assert(lfs.chdir(archdir), archdir)
+ local signed_index = "APKINDEX.tar.gz"
+ local unsigned_index = "APKINDEX.tar.gz.unsigned"
+ if lfs.attributes(signed_index) ~= nil then
+ indexopt = "--index "..signed_index
+ end
+ if description then
+ descriptionopt="--description "..description
+ end
+ local indexcmd = ("apk index --quiet %s %s --output '%s' --rewrite-arch %s *.apk"):format(indexopt, descriptionopt, unsigned_index, arch)
+ local signcmd = "abuild-sign -q "..unsigned_index
+ assert(os.execute(indexcmd), indexcmd)
+ assert(os.execute(signcmd), signcmd)
+ assert(os.rename(unsigned_index, signed_index), signed_index)
+ lfs.chdir(olddir)
+end
+
+return M