<div class="gmail_quote">On 5 October 2011 14:30, Joel Reymont <span dir="ltr"><<a href="mailto:joelr1@gmail.com">joelr1@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I would like to customize the app file created by rebar.<br>
<br>
For example, I would like to change the env section and make sure applications includes mnesia and lager.<br></blockquote><div><br></div><div>If you put the env section in your src/<name>.app.src file then it will be copied across verbatim.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Last but not least, I would like to change the version to the output of `git rev-parse --short HEAD`.<br>
<br>
</blockquote><div><br></div><div>If your application is in a subdirectory within the project (i.e., is one of sub_dirs) then you can do this by generating the version you want in a file inside the project subdirectory named priv/vsn.git - then you can put <span class="Apple-style-span" style="font-family: 'Bitstream Vera Sans Mono', Courier, monospace; font-size: 12px; line-height: 16px; white-space: pre; background-color: rgb(255, 255, 255); ">{vsn, git}</span> in your app.src and it will work fine. I do something similar using a rebar plugin here: <a href="https://github.com/hyperthunk/nodewatch/blob/master/build/src/git_vsn_plugin.erl">https://github.com/hyperthunk/nodewatch/blob/master/build/src/git_vsn_plugin.erl</a></div>
<div><br></div><div>Other approaches include </div><div><br></div><div>- write a rebar plugin that hooks into post_compile/2 and overwrites the value in the generated .app file</div><div>- write a command line hook that uses sed on the generated .app file, and register it as {post_hooks, [{compile, "sed ....."}]} in your rebar.config<br>
</div><div><br></div><div>You may even be able to do this with rebar's app.vars file, although I'm not 100% sure if that'll work.</div><div><br></div><div>HTH!</div><div><br></div></div>