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
|