qdate_localtime/src/ibuild.erl

32 lines
887 B
Erlang
Raw Normal View History

2014-03-07 10:08:12 +04:00
%% @author Dmitry S. Melnikov (dmitryme@gmail.com)
%% @copyright 2010 Dmitry S. Melnikov
2010-12-18 21:07:15 +03:00
-module(ibuild).
-export([build_index/0, main/1]).
2010-12-18 21:07:15 +03:00
-include("tz_database.hrl").
build_tzlist(TzName, Name, Dict) ->
case dict:find(Name, Dict) of
error ->
dict:store(Name, [TzName], Dict);
{ok, TzNames} ->
dict:store(Name, TzNames ++ [TzName], Dict)
end.
build_index() ->
F = fun({TzName,{Name,_},{DName,_},_,_,_,_,_,_}, Acc) ->
NewDict = build_tzlist(TzName, Name, Acc),
build_tzlist(TzName, DName, NewDict);
({TzName,{Name,_},undef,_,_,_,_,_,_}, Acc) ->
build_tzlist(TzName, Name, Acc)
end,
I = lists:foldl(F, dict:new(), ?tz_database),
{ok, File} = file:open("tz_index.hrl", [write]),
io:fwrite(File, "-define(tz_index, ~p).\n", [I]).
%% So this can be run from escript:
main(_Args) ->
build_index().