summaryrefslogtreecommitdiff
path: root/pkg/tz/gen.lua
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2019-07-10 00:52:58 -0700
committerMichael Forney <mforney@mforney.org>2019-07-10 00:52:58 -0700
commit95238ca682eadca3dd1b839b69e375d61e16af24 (patch)
treed1cba0bcf228d389f51dd3ea9356af72a9ad8b1a /pkg/tz/gen.lua
parentd04f5611ffb2ef6ebfe2a1f4315e7b9ce7c4b0be (diff)
tz: Specify zic outputs explicitly
Diffstat (limited to 'pkg/tz/gen.lua')
-rw-r--r--pkg/tz/gen.lua26
1 files changed, 18 insertions, 8 deletions
diff --git a/pkg/tz/gen.lua b/pkg/tz/gen.lua
index ae5ea660..24cc0f66 100644
--- a/pkg/tz/gen.lua
+++ b/pkg/tz/gen.lua
@@ -7,7 +7,7 @@ exe('zic', {'zic.c'})
file('bin/zic', '755', '$outdir/zic')
man{'zic.8'}
-local tzdata = {
+local srcs = {
'africa',
'antarctica',
'asia',
@@ -19,12 +19,22 @@ local tzdata = {
'systemv',
'factory',
}
-rule('tzdata', 'lua5.2 $dir/tzdata.lua $repo $outdir/zoneinfo $in >$out.tmp && mv $out.tmp $out')
-build('tzdata', '$outdir/tzdata.index', {
- expand{'$srcdir/', tzdata},
- '|', '$dir/tzdata.lua', 'scripts/hash.sh',
- '||', '$builddir/root.stamp',
-})
-table.insert(pkg.inputs.index, '$outdir/tzdata.index')
+
+local zones = {}
+local data = load 'data.lua'
+for _, src in ipairs(srcs) do
+ for name, target in pairs(data[src]) do
+ if target then
+ target = name:gsub('[^/]+', '..'):sub(1, -3)..target
+ sym('share/zoneinfo/'..name, target)
+ else
+ file('share/zoneinfo/'..name, '644', '$outdir/zoneinfo/'..name)
+ table.insert(zones, name)
+ end
+ end
+end
+
+rule('zic', 'zic -d $outdir/zoneinfo $in')
+build('zic', expand{'$outdir/zoneinfo/', zones}, expand{'$srcdir/', srcs})
fetch 'git'