| Age | Commit message (Collapse) | Author | 
|---|
|  | Templates now no longer use Make variables for substitution
but instead replace strings with their equivalent:
  template_name: Corresponds to n=template_name
  project_name:  Corresponds to $(PROJECT) or in=project_name
This allows defining templates outside of Makefiles. For
example an external plugin could define their templates
in templates/my_template.erl and then have the following
in the included Makefile:
  tpl_my_template = $(file < $(THIS)/templates/my_template.erl)
By default the created file will be in src/template_name.erl.
This can be overriden with the tplp_* variable:
  tplp_my_template = src/model/my_template.erl
Substitution is applied both to the template contents and
to its path.
In addition, attempting to overwrite an existing file when
creating a template will result in failure. | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | At least on FreeBSD, the `en_US.UTF-8` locale I use breaks the check. It
might be a bug on FreeBSD because I don't understand why it would affect
the behaviour of that simple regex. Nonetheless, let's override the
locale to make sure this does not happen again. | 
|  |  | 
|  | Also remove the last instance of an "eval export" that pollutes
the environment and use the new core_render for it instead.
core_render does not include $(verbose) as this needs to be
different depending on who calls it. It's now set explicitly
everywhere required. | 
|  | And some refactor and additional testing for overriding.
Turns out we can override some variables even if ?= is not used,
so nothing had to be done to support overriding. | 
|  |  | 
|  |  | 
|  |  | 
|  | So they can use include files and other from other apps
when they're built directly, and that they use the same
deps directory. | 
|  |  | 
|  |  | 
|  | [skip ci] | 
|  |  | 
|  |  | 
|  | Makes more sense than 0.0.1. | 
|  |  | 
|  |  | 
|  |  | 
|  | Every .erl source file will need at least a -module and a single -export
definition. With the 'module' template a file can be quickly created that
already populates -module with the right value as well as an empty
export field. | 
|  | At the same time update the Makefile templates which were
missing PROJECT_DESCRIPTION and PROJECT_VERSION fields. | 
|  | We can write the file using the Makefile variables without going
through environment variables. | 
|  |  | 
|  | This changes adds Rebar-like "apps/" functionality.
From this commit onward, Erlang.mk supports 4 types of repositories:
- Repo with an Erlang app at root level + deps/
- Repo with an Erlang app at root level + apps/ deps/
- Repo with no app at root level + deps/
- Repo with no app at root level + apps/ deps/
Example usage:
- make new-app in=webchat
- make new t=gen_server n=my_chat in=webchat
- make
Replace new-app with new-lib to create an OTP library instead of
an OTP application. | 
|  | Also fixes two bugs with the new "no .app.src" method.
All tests now pass with both methods.
We can now test specific cases with make check c=$CASE. | 
|  |  | 
|  | By default templates use tabs. Unfortunately there are misguided
heretics who prefer spaces. Bummer.
Two variables are introduced:
* SP=<number> can be set to use <number> spaces per indentation level.
* WS=<string> can be set to use <string> for each indentation level.
Most users will just want to use SP, for example:
  make new t=gen_server n=my_server SP=4
Note that people who want tabs don't have to do anything; tabs
are still the default.
WS is reserved for advanced users. Normal Make rules apply: all
whitespaces are trimmed. To specify 4 spaces using WS, you can
do the following:
  make new t=gen_server n=my_server WS='$(empty)    $(empty)'
Ugly, right? So just use SP.
Finally, SP and WS can be put in your Makefile directly.
In fact, erlang.mk will automatically add SP to a newly
created project if it was used during creation. For example:
  make -f erlang.mk bootstrap SP=2
So in time we should only need to make a note in the docs
at project creation time, as there is very little value
after that point. | 
|  |  | 
|  | Changed the method to echo multiline variables into something
that should work for everyone. | 
|  | Also added a copyright line in the eunit plugin due to the
extensive work I have done there a few days ago. | 
|  | * Rename and add the default state functions `state_name/2,3`
* Rename the variable `State` into `StateData` as per documentation | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | list-templates was replaced by bootstrap-lib in the output of the help command. | 
|  |  | 
|  |  |