summaryrefslogtreecommitdiff
path: root/pkg/tz/tzdata.lua
blob: 9777e10c0d8ae5cdbb75477fb05c18105b46d45a (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
local function execute(cmd)
	if not os.execute(cmd) then
		error('command failed: '..cmd)
	end
end

local hash = 'rc ./scripts/hash.rc %s %s share/zoneinfo/%s %s'
local repo = arg[1]
local outdir = arg[2]
for i = 3, #arg do
	execute(string.format('zic -d %s %s', outdir, arg[i]))
	for line in io.lines(arg[i]) do
		local target, name = line:match('^Link%s+(%g+)%s+(%g+)')
		if target then
			target = name:gsub('[^/]+', '..'):sub(1, -3)..target
			execute(hash:format(repo, 120000, name, target))
		else
			name = line:match('^Zone%s+(%g+)')
			if name then
				execute(hash:format(repo, 100644, name, outdir..'/'..name))
			end
		end
	end
end