Packages
gpb
4.14.2
5.0.0
4.21.7
4.21.6
4.21.5
4.21.4
4.21.3
4.21.2
4.21.1
4.21.0
4.20.0
4.19.9
4.19.8
4.19.7
4.19.6
4.19.5
4.19.4
4.19.3
4.19.2
4.19.1
4.19.0
4.18.0
4.17.7
4.17.6
4.17.5
4.17.3
4.17.2
4.17.1
4.17.0
4.16.2
4.16.1
4.16.0
4.15.2
4.15.1
4.14.2
4.14.1
4.14.0
4.13.0
4.12.0
4.11.2
4.11.1
4.11.0
4.10.6
4.10.5
4.10.4
4.10.3
4.10.2
4.10.1
4.10.0
4.9.3
4.9.2
4.9.1
4.9.0
4.8.0
4.7.3
4.7.2
4.7.1
4.7.0
4.6.0
4.5.1
4.5.0
4.4.1
4.4.0
4.3.3
4.3.2
4.3.1
4.3.0
4.2.3
4.2.2
4.2.1
4.2.0
4.1.9
4.1.8
4.1.7
4.1.6
4.1.5
4.1.4
4.1.3
4.1.2
4.1.1
4.1.0
4.0.2
4.0.1
4.0.0
3.28.1
3.28.0
3.27.7
3.27.6
3.27.5
3.27.4
3.27.3
3.27.2
3.27.1
3.27.0
3.26.8
3.26.7
3.26.6
3.26.5
3.26.4
3.26.3
3.26.2
3.26.1
3.26.0
3.25.2
3.25.1
3.25.0
3.24.4
3.24.3
3.24.2
3.24.1
3.24.0
3.23.2
3.23.1
3.23.0
3.22.5
3.22.4
3.22.3
3.22.2
3.22.1
3.22.0
3.21.3
3.21.2
3.21.1
3.21.0
3.20.3
3.20.2
3.20.0
3.19.0
3.18.10
3.18.9
3.18.8
3.18.7
3.18.6
3.18.5
3.18.4
3.18.3
3.18.2
3.18.1
3.18.0
3.17.13
3.17.12
3.17.11
3.17.10
3.17.9
3.17.8
3.17.5
3.17.4
3.17.3
3.17.2
3.17.1
3.17.0
3.16.0
3.15.0
3.14.0
3.13.0
3.12.2
3.12.1
3.12.0
3.11.0
A compiler for Google protocol buffer definitions files for Erlang.
Current section
Files
Jump to
Current section
Files
build/mk_version_hrl
#!/usr/bin/env escript
%% -*- erlang -*-
-mode(compile).
-define(NOT_IN_GIT_ERR_MSG,
"ERROR: Building outside a git work tree is not supported,
unless the source has first been exported.
This is for the version number to get correct.
To build outside a git work tree, first export it:
Start with a git clone, then run helpers/export-from-git.
For further info, see the README.md, the section section
named Building outside of a git work tree
Github automatically generates tar/zip files from tags,
but these will unfortunately not do, since the version
number does not get set correctly.").
file_err(FunName, FileName, Reason) ->
io:format(standard_error, "file:~p(~s) excute failed!, Reason :~s ~n",
[FunName, FileName, file:format_error(Reason)]),
halt(1).
main([InFile, OutFile]) ->
InGit = os:cmd("git rev-parse --is-inside-work-tree 2>&1"),
case InGit of
"true" ++ _ ->
next;
_ ->
io:format(standard_error, "~s~n", [?NOT_IN_GIT_ERR_MSG]),
halt(1)
end,
Vsn0 = os:cmd("git describe --always --tags --match [0-9]*.[0-9]*"),
Vsn = lists:sublist(Vsn0, length(Vsn0) - 1),
BaseStr = case file:read_file(InFile) of
{ok, S} ->
S;
{error, Reason} ->
file_err(read_file, InFile, Reason)
end,
SedList =
[
{<<"@vsn@">>, Vsn},
{<<"is expected to be">>, <<"was">>},
{<<"%% The version below">>, [<<"%% DO NOT EDIT -- generated ">>,
<<"from gpb_version.hrl.in\n%% The version below">>]},
{<<"%% NB: The build.mk_version_hrl depends.*">>, <<"">>}
],
VersionStr = lists:foldl(fun({Patten, Replacement}, Acc) ->
re:replace(Acc, Patten, Replacement, [{return, binary}])
end, BaseStr, SedList),
case file:write_file(OutFile, VersionStr) of
ok ->
ok;
{error, Reason2} ->
file_err(write_file, OutFile, Reason2)
end.