summaryrefslogtreecommitdiffstats
path: root/aports/apkrepo.lua
blob: 4418670f6cbf92da2fb49a38565412525336e68b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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