Commit graph

726 commits

Author SHA1 Message Date
Tuncer Ayaz
da122b3e57 Add rebar_utils:delayed_halt/1 2012-02-16 19:17:58 +01:00
Phil Toland
8b486055e4 Fix compiling DTL templates with latest erlydtl
The latest version of erlydtl requires that custom tag modules be in
the path when templates are compiled. Without this change rebar silently
exits when using the custom_tags_modules option.
2012-02-16 11:40:57 +01:00
Jeremy Raymond
7e84634b8f Fix for destruction of config app vars on reset 2012-02-15 21:11:57 +01:00
Tuncer Ayaz
1a613d6123 Remove debug log 2012-02-12 18:43:40 +01:00
Tuncer Ayaz
b48cc0c7eb Fix regression in port_compiler needs_link check 2012-02-10 23:02:53 +01:00
Shunichi Shinohara
ebb2345071 Treat callback attributes same as behaviour_info
Automatically include modules with callback attributes in
erl_first_files.
2012-02-10 10:26:16 +01:00
Tuncer Ayaz
1c1a32b8ba Use lists:flatmap/2 2012-02-07 20:11:50 +01:00
Yurin Slava
5a640a92fd Remove unused include_lib directive 2012-02-04 11:28:12 +01:00
Tuncer Ayaz
b7fb2aeec6 Fix loading of local plugins in sub directories 2012-02-03 17:37:41 +01:00
Tuncer Ayaz
6898eff2c7 Rework port compiler support
* consolidate options
 * add support for building executables
2012-02-03 16:26:14 +01:00
Tuncer Ayaz
ba538094ba Extend rebar_utils:deprecated 2012-02-03 10:17:58 +01:00
Tuncer Ayaz
a176db6937 Fix Dialyzer (race condition) warning 2012-02-02 22:54:40 +01:00
Yurii Rashkovskii
fe1652e137 Cache vsn info to avoid expensive vcs cmd calls 2012-02-02 21:54:15 +01:00
Tuncer Ayaz
b6f3a76694 Imported new mustache.erl 2012-01-31 21:12:59 +01:00
Tuncer Ayaz
440fa6bd31 Only print sh/2 options on debug log level 2012-01-29 17:55:30 +01:00
Tuncer Ayaz
194f3caa3f Fix -D and -v handling with new getopt.erl 2012-01-29 17:48:55 +01:00
Tuncer Ayaz
c4e40714ee Import fixed upstream getopt.erl 2012-01-29 17:45:03 +01:00
Tuncer Ayaz
2a5320fbd6 Document verbosity level 2012-01-17 17:04:07 +01:00
Tuncer Ayaz
2cae2950c4 Fix whitespace errors 2012-01-17 17:04:07 +01:00
Tuncer Ayaz
e6caab00d5 Use ?ERROR where appropriate 2012-01-17 17:04:07 +01:00
Tuncer Ayaz
015e58201c Support different log levels 2012-01-17 17:04:07 +01:00
Tuncer Ayaz
263b49f970 Import new upstream getopt.erl 2012-01-17 17:04:07 +01:00
Tuncer Ayaz
ee44d8554a Fix whitespace errors 2012-01-17 17:04:07 +01:00
Francis Joanis
b498e86ef7 Delete existing erl files in ?EUNIT_DIR
Before copying the .erl files to the .eunit directory ensure that they
are deleted if they already exist. This prevents EACCES errors to happen
when trying to re-copy .erl files that are read-only.
2012-01-17 16:54:27 +01:00
Tuncer Ayaz
41d6abc64d Fix whitespace errors 2012-01-13 19:56:10 +01:00
Tuncer Ayaz
5b15c851d8 Check for .app.src first 2012-01-13 19:39:28 +01:00
Tuncer Ayaz
eab5ae5298 Fix code clarity in dir type check 2012-01-13 19:00:44 +01:00
Tuncer Ayaz
0689928527 Warn if we ignore a skip_dir's sub_dirs 2012-01-13 18:25:02 +01:00
Tuncer Ayaz
cab1671ea0 Add missing newline for logging code path update 2012-01-13 18:18:51 +01:00
Tuncer Ayaz
45555eb6ae Ignore sub_dirs in skip_dirs 2012-01-10 11:24:09 +01:00
Tuncer Ayaz
87669b6b7f Clean up rebar_utils 2012-01-10 11:15:55 +01:00
Tuncer Ayaz
4d2d3c3af3 Remove port_first_files support 2012-01-09 13:05:23 +01:00
Tuncer Ayaz
2be2f2bfe7 Fix whitespace errors 2012-01-09 12:43:09 +01:00
Tuncer Ayaz
4e471e6986 Fix Dialyzer warning 2012-01-09 12:42:53 +01:00
Matt Campbell
c15d99d8bb On windows, avoid symlink during upgrade
a) make_symlink throws "not supported" on OS < Vista (e.g. 2003)
b) tarball creation stores windows symlinks as absolute paths
   instead of relative, causing service to fail to start after upgrade
   is made permanent.
2012-01-09 12:33:39 +01:00
Magnus Klaar
4db90bafef Deprecate ct suite= option for suites= option 2012-01-06 20:40:46 +01:00
Tuncer Ayaz
1daa15293a Reverse order in rebar_utils:get_deprecated_global/3 2012-01-06 19:50:20 +01:00
Tuncer Ayaz
27e5a0ae5b Cleanup and simplify deprecated option handling 2012-01-01 15:10:35 +01:00
Tomas Abrahamsson
c8f56c7cb2 Don't kill any inet_gethost_native after eunit
Avoid error reports like this one:

  prompt$ rebar eunit
  ==> dummy (eunit)
    Test passed.

  =ERROR REPORT==== 29-Dec-2011::23:22:11 ===
  ** Generic server inet_gethost_native_sup terminating
  ** Last message in was {'EXIT',<0.62.0>,killed}
  ** When Server state == {state,inet_gethost_native,undefined,<0.62.0>,
                                 {local,inet_gethost_native_sup}}
  ** Reason for termination ==
  ** killed

Previously, it could happen if an eunit test did something that
required a name lookup, like in this example:

  -module(dummy_tests).
  -include_lib("eunit/include/eunit.hrl").

  x_test() ->
      {ok, _Hostent} = inet:gethostbyname(localhost).

The inet_gethost_native is a process, started on demand, under a
supervisor_bridge under the kernel_sup, but it is not a gen_server
process or the like, so it has nothing in '$ancestors' in its process
dictionary to indicate it is part of kernel.
2011-12-29 23:38:03 +01:00
Ali Sabil
f47d61bc13 Add {vsn, _} support for reltool.config 2011-12-28 13:18:40 +01:00
Tuncer Ayaz
1de48e4902 Move vcs_vsn/2 to rebar_utils 2011-12-28 13:09:46 +01:00
Tim Watson
286a2a88a4 Add support for customising common test directory
This patch allows users to specify the directory in which common_test
source files can be found. Most common_test suites are integration,
rather than unit tests and keeping the sources apart from test sources
for other frameworks such as eunit and PropEr is a useful feature.
2011-12-28 12:41:36 +01:00
Tuncer Ayaz
e4c85d4548 Remove trailing whitespace in rebar_reltool 2011-12-19 19:17:42 +01:00
Tuncer Ayaz
7c327c1195 Fix rebar_core crash (reported-by: Jeremy Raymond) 2011-12-18 13:29:58 +01:00
Tuncer Ayaz
58101588a1 Fix help text formatting 2011-12-16 21:04:18 +01:00
Tuncer Ayaz
8c89a388bf Universally support apps=/skip_apps= 2011-12-12 21:20:34 +01:00
Tuncer Ayaz
a5e39c2c54 Move is_skipped_app/0 to rebar_app_utils 2011-12-12 17:53:56 +01:00
Tuncer Ayaz
b1d84514f0 Add rebar_utils:deprecated/4 and remove define 2011-12-12 17:52:04 +01:00
Tuncer Ayaz
e33d3a568f rebar_xref: move code to proper place 2011-12-12 17:09:03 +01:00
Torbjorn Tornkvist
b4f136d752 Make 'rebar xref' honour the skip_app directive
It is now possible to call rebar as:

  rebar xref skip_app=Mod1,Mod2,...

This makes it easy to skip running xref on (e.g)
imported dependencies in your application.

The function rebar_utils:is_skipped_app/0 is added so
that other rebar commands may use it.
2011-12-12 17:06:23 +01:00
Jesse Gumm
9f31ceae00 Fail if erl_interface not found
Previously if erl_interface could not be found {error, not_found} was
incorrectly used as a path. With this change we fail early with a
descriptive error message.
2011-12-08 20:12:16 +01:00
Tuncer Ayaz
8de2c84d89 Add support for arch-specific hooks
{pre_hooks,  [{"linux", compile, "c_src/build_linux.sh"}]}.
{post_hooks, [{"linux", compile, "c_src/build_linux.sh clean"}]}.
2011-12-05 14:17:18 +01:00
Tim Watson
0e3e94c253 Add support for first_files to port compiler
This patch adds support for first_files to the port_compiler, via the
new `port_first_files` rebar config element.
2011-11-30 19:39:23 +01:00
Tuncer Ayaz
a6fdac99a4 Fix and refactor reltool root_dir lookup 2011-11-26 12:01:13 +01:00
Tuncer Ayaz
ab79534507 Limit line length 2011-11-26 11:36:26 +01:00
smithwinston
1eaf88d1d0 Add root_dir option to reltool.config
When generating a node using rebar generate, rebar always used
code:root_dir() to find the Erlang installation to clone into the node
tree.  However, for anyone wishing to build a cross-compiled node, there
was no way to override this.  This patch adds a new option to
reltool.config file to allow an alternate root_dir to be specified, for
example:

{root_dir, "/tmp/otp_R14B03_armv7l"}

This assumes that the contents of /tmp/otp_R14B03_armv7l has been
generated using the instructions found in the xcomp directory in your
$ERL_TOP structure.  NOTE: you may have to add additional filters to
exclude files not present in the xcomp version, such as the .smp files
if you have disabled that.
2011-11-26 10:38:27 +01:00
Bob Ippolito
a54dd53673 Treat HEAD as a branch to fix regressions caused by 3ef7db5 2011-11-16 21:46:18 +01:00
Tuncer Ayaz
147d5e3b56 Remove gratuitous space in debug log 2011-11-09 22:56:54 +01:00
Tuncer Ayaz
e62ea1994c Remove gratuitous prefix in error log 2011-11-08 16:04:27 +01:00
Tuncer Ayaz
d2cf35ad02 Remove obsolete comments (thanks Tim Watson) 2011-11-04 18:53:36 +01:00
Klas Johansson
896e8505b2 Stop applications before killing extra processes
This means that applications get a chance to shut down themselves,
before rebar will start killing their processes.  This avoids ERROR
REPORTS from application supervisors.
2011-11-02 20:08:24 +01:00
Jan Kloetzke
b10224be62 Fix rebar_utils:expand_env_variable/3
The function may fail with a badarg exception because the first regex
returns an iolist() which is allowed to be a improper list. In this case
'++' cannot append to the iolist. The correct way to append something to
an iolist() is

  [iolist(), "tail"]

because iolist's are allowed to be arbitrarily deep lists.
2011-11-01 22:00:15 +01:00
Tuncer Ayaz
9197e70bd7 Fix formatting 2011-10-26 23:23:46 +02:00
Tuncer Ayaz
c373f29292 Fix comments and formatting 2011-10-26 23:16:36 +02:00
Dave Smith
17616d1078 Overhaul environment expansion for better performance
The introduction of setup_env as a global concept caused the rebar_port_compiler
implementation to start getting called a LOT. The expansion of environment variables
that happens in the port compiler was O(n^n), which means you could see upwards of
80k invocations of lists:foldl on a single app "./rebar clean". This commit reworks
the expansion to be O(n^2), and reduces the running time for the same operation by
60%+. On a large project like Riak, the end result is that a build went from 200
seconds to 73.
2011-10-26 23:16:36 +02:00
Dave Smith
1c1620a244 When profiling, save analysis results to disk 2011-10-25 23:58:53 -06:00
Dave Smith
45fc18f990 Add support for -p flag to profile rebar run 2011-10-25 13:33:40 -06:00
Tuncer Ayaz
28b9cebf0a Add -D support to rebar_port_compiler 2011-10-23 01:12:54 +02:00
Tuncer Ayaz
8eeca123e5 Cleanup and fix -D for erl_opts 2011-10-23 01:12:54 +02:00
Tuncer Ayaz
a0dcc624d9 Add -D option 2011-10-22 21:03:22 +02:00
Tuncer Ayaz
74ca540939 Use same variable names as file:make_link/2 2011-10-21 17:59:29 +02:00
Przemysław Dąbek
eb23571b8b Add possibility to make symbolic links
Simple feature, useful to make link to something without copying it.
2011-10-20 20:29:16 +02:00
Fabian Linzberger
176ec0e71e Work around functions not found in source
For parameterized modules, the beam code will have a compiler
generated new/1 and instance/1 function.

If while checking the beam, xref detects one of those is unused, the
rebars xref wrapper will try to find the location of the definition of
that function in the source code for the module (to give a more
specific warning to the user). Since the function was generated by the
compiler it does not actually exist in the source, and rebar crashes
at that stage. This patch works around that issue.
2011-10-20 16:37:41 +02:00
Steven Gravell
3c7a5804e9 Add overlay command to run overlays only
required for building on a different machine to what your live
config is kept on. This way you can build on one machine,
distribute to new machine, then run overlays against a live
config to prevent accidently running code against a live
config in a development or ci environment.
2011-10-20 16:33:19 +02:00
Joseph Wayne Norton
4a5114b79f Setup code path prior to calling edoc
Setup code path prior to calling edoc so that edown, asciiedoc,
and the like can work properly when generating their own
documentation.
2011-10-20 16:32:05 +02:00
Tim Watson
86325b616d Allow plugins to participate in pre and post processing
This patch modifies rebar_core to allow plugins to participate in the
pre and post processing steps, giving plugin authors more flexibility
and control.
2011-10-20 16:31:08 +02:00
Jan Klötzke
0ce5cbab06 rebar_file_utils: simplify commands on Windows 2011-10-20 16:27:35 +02:00
Jan Klötzke
3f9b346dec Fix the 'ct' target to work on Windows with MSYS 2011-10-20 16:27:35 +02:00
Jan Klötzke
85575fca65 rebar_app_utils: fix git hook for Windows 2011-10-20 16:27:35 +02:00
Jan Klötzke
b535b5eea8 rebar_utils:sh/2: remove bash invocation on Windows
Currently rebar_utils:sh/2 will invoke all commands through bash.exe if
found. Otherwise the command will be executed directly. Despite the fact
that the caller cannot know if the command is executed with Unix or
Windows semantics it leads to problems with MSYS's automatic path name
translation.

Therefore remove bash usage on Windows to get a consistent behavior and
to avoid the peculiarities of MSYS's automatic path conversion. Instead
use cmd.exe as its typically needed by most commands.
2011-10-20 16:27:35 +02:00
joewilliams
fb8732085e Better code path handling during upgrades
While building a upgrade package rebar will add new paths to the
internal erlang path, these paths and their order have effects on how
the package is built. This patch should fix some corner cases where a
user can receive a "undefined application" error.
2011-10-17 18:40:45 -07:00
joewilliams
644bb0a312 Copy sys.config into upgrade tarball
While building an upgrade the sys.config file should be copied into the
upgrade tarball so release_handler:install_releases/1 does not clobber
the existing configuration from the application environment.
2011-10-17 14:53:27 -07:00
joewilliams
f82028a544 More descriptive logging for upgrade systools cmds
In debugging upgrade issues it is sometimes difficult to know which
systools step a error ocurred at, a little extra logging to fix that.
2011-10-15 10:24:40 -07:00
Jon Meredith
5775746758 Remove modules that fail coverage from the list 2011-10-14 17:10:11 +02:00
Tim Watson
6dfcd8b9f2 Support for custom version commands
This patch adds support for customising the way in which rebar generates
version numbers for app.src files using the `{vsn,Spec}` approach.
Whilst the existing `{vsn,ScmName::atom()}` syntax will continue to
work, users can also pass `{vsn,{cmd,Cmd::string()}}` in which
case the provided *command* will be used. For example:

```erlang
{application, doodah,
 [
  {vsn, {cmd, "git rev-parse --short HEAD"}}]}.
```
2011-10-11 11:23:23 +02:00
Tuncer Ayaz
5a0aa04b20 Cleanup deprecations now that R14B04 is released 2011-10-06 17:06:08 +02:00
joewilliams
b7bcf5528b Handle vm.args properly while building upgrades
This patch corrects the vm.args behavior while building upgrade tarballs
by copying the file from the release into the upgrade. Additionally it
patches the dummy runner script in the upgrade test project to work
properly.
2011-10-05 20:23:07 -07:00
Tim Watson
30d1cdb31b Fix config handling in root_dir
Avoid overwriting custom config (passed with -C) when we are processing
the base_dir in rebar_core.
2011-10-05 13:49:27 +02:00
joewilliams
cb5056b2e3 Get rid of app.config
app.config has been a long standing erroneous file in rebar. Erlang/OTP
documentation suggests a sys.config file instead. This file is stored in
the releases/VSN directory. This does a few things but most importantly
it ensures your config (contained in the application environment)
survives a hot upgrade. It also has the advantage of allowing the
configuration of the application to be versioned along side the
application code. This patch flips rebar to use sys.config rather than
app.config.

Additionally it makes this flip to vm.args as well, making them
versioned just like sys.config.

This patch also includes runner script changes to support the old
etc/app.config config file location and support for Windows.

Thanks to mokele for the initial work and kick in the pants to make this
finially happen.
2011-09-20 09:44:41 -07:00
Tim Watson
36a40d3351 Fix missing plugin warnings
This patch fixes the warning logging when the number of missing plugins
is greater than one. The current code only works by accident, when a
single plugin is all that is missing.
2011-09-20 13:15:03 +02:00
Tuncer Ayaz
fa1bbc6702 Fix regressions in rebar_file_utils 2011-09-15 18:39:14 +02:00
Tuncer Ayaz
317eeb72e0 Fix Dialyzer warning 2011-09-08 22:54:44 +02:00
Tuncer Ayaz
1cb1ae238a Fix regression in rebar_file_utils:cp_r/2 2011-09-04 23:04:55 +02:00
Jan Vincent Liwanag
f16ebd13dc Move asn1 generated *.hrl to include 2011-09-04 14:11:50 +02:00
Tuncer Ayaz
6a2fb52277 Fix spec for rebar_file_utils:rm_rf/1 2011-09-02 19:51:48 +02:00
Jan Klötzke
3fa6f6ab7c Quote paths before passing them to the shell 2011-09-02 19:40:30 +02:00
Anton Lavrik
7b90cc4707 Export $REBAR_DEPS_DIR and $ERL_LIBS variables
Export two extra environment variables when executing shell commands.
These variables are useful for rebar hooks that rely on Erlang
applications installed as rebar dependencies.

$REBAR_DEPS_DIR contains a fully-qualified name of the directory where
rebar stores dependencies.

$ERL_LIBS is set to $REBAR_DEPS_DIR or to "$REBAR_DEPS_DIR:$ERL_LIBS",
if $ERL_LIBS was defined before.
2011-09-02 19:21:11 +02:00
Ignas Vyšniauskas
ed94237dde Ensure include dir exists in compile_mib/3 2011-09-02 17:53:55 +02:00
Tuncer Ayaz
c3a4ed292e Clean up and fix vcs functions and logging 2011-09-02 14:54:08 +02:00
Ben Ellis
3ef7db59cb Add support for checking out specific git commit 2011-09-01 22:29:55 +02:00
Tuncer Ayaz
3e946a7d5c Fix cover_init call to use correct module list 2011-09-01 20:17:43 +02:00
Joseph Wayne Norton
b6f575c7fe Keep *_tests not automatically included by eunit 2011-09-01 19:23:46 +02:00
Tuncer Ayaz
0741157a11 Fix misspelling of accommodate 2011-08-31 15:29:23 +02:00
Tuncer Ayaz
475daf2c4a Comment git vsn cmd changes 2011-08-29 20:02:03 +02:00
Tuncer Ayaz
93128f2f6b Search plugin sources in base_dir and plugin_dir 2011-08-29 17:27:45 +02:00
Tuncer Ayaz
00b3d9d3cc Only compile relevant plugin sources 2011-08-29 17:27:45 +02:00
Tuncer Ayaz
4fe651cb5b Simplify check for empty list 2011-08-29 17:27:45 +02:00
Tim Watson
3b58935b86 Load plugins dynamically from source
This patch updates rebar_core to look for missing plugins (i.e. those
that aren't found on the code path at runtime) in a configurable
plugin directory, and dynamically compile and load them at runtime.

By default, the directory "plugins" is searched, although this can be
overriden by setting the plugin_dir in your rebar.config.
2011-08-29 17:27:45 +02:00
Alfonso De Gregorio
6f76d14499 Fix R13 compatibility (auto imported monitor/2) 2011-08-28 14:00:04 +02:00
Tuncer Ayaz
a53fc2d8f5 Document git vsn cmd and fix formatting 2011-08-27 15:45:50 +02:00
Yurii Rashkovskii
15b7798e46 Add precise git versioning of multiple apps
Allows using tools like git-subtree and still maintaining proper
git-based vsns for those "imported" subtrees. Also helps understanding
what was the last change introduced to a specific application within a
multi-application repository (at this moment, all applications that
reside in the same repository, will share the same autogenerated git
vsn)
2011-08-27 15:38:54 +02:00
Tuncer Ayaz
8376693a3f Fix Dialyzer warnings 2011-08-25 11:41:22 +02:00
Scott Lystig Fritchie
9832a5c5c6 Merge slf-eunit-process-isolation2 branch 2011-08-24 23:19:01 -05:00
Scott Lystig Fritchie
9c8b5e6c82 Check $ancestors for kernel OTP app processes to not kill 2011-08-24 12:11:48 -05:00
Scott Lystig Fritchie
0627075dd6 Add comments on pids not to kill 2011-08-23 17:32:07 -05:00
Scott Lystig Fritchie
b674ea19a4 Portability via filename:join/1 2011-08-23 14:22:04 -05:00
Scott Lystig Fritchie
f79290dc9c Replace sleep with pause_until_net_kernel_stopped() 2011-08-23 14:17:18 -05:00
Tuncer Ayaz
1dcf0d15dc Log a more descriptive message 2011-08-23 18:54:05 +02:00
Tuncer Ayaz
e6d1e13966 Apply Tidier suggestions 2011-08-20 18:33:36 +02:00
Tuncer Ayaz
8fb385f312 Limit line length 2011-08-20 18:26:59 +02:00
Jan Klötzke
7ec9b48d50 Support command invocation on Windows without MSYS
If MSYS (with bash) is not installed on Windows then do the shell
variable substitution by ourselves. Otherwise just call bash to do the
job.
2011-08-20 18:20:26 +02:00
Tim Watson
5bb536f839 Respect the --config switch when given
Currently the --config switch does not work because when loading
a new rebar config the global setting is ignored for all paths.
This patch provides a check when loading new rebar config to see
whether or not the current config path matches the `base_dir` set in
global conf, which produces the expected behaviour.
2011-08-18 15:35:30 +02:00
Tuncer Ayaz
da31f90d1d Rename rebar_plugins to plugins for consistency 2011-08-16 17:34:09 +02:00
Scott Lystig Fritchie
34dd0ccdd9 EUnit: reset vm state after test run
Added new property to `eunit_opts` option list:

  reset_after_eunit::boolean() - default = true.
      If true, try to "reset" VM state to approximate state prior to
      running the EUnit tests:
          * Stop net_kernel if it was started
          * Stop OTP applications not running before EUnit tests were run
          * Kill processes not running before EUnit tests were run
          * Reset OTP application environment variables
2011-08-11 15:52:34 -05:00
David Reid
6736e3147e Fix handling of {already_started,Pid} from cover:start
Previous patch erroneously assumed that cover:start() returned
{already_started,Pid} in the cases where cover was already started. We
now turn {error,{already_started,Pid}} into {ok, Pid} and return
{error, Reason} if we encounter an error we do not know about, this
will cause a nice and violent badmatch to stop everything.
2011-08-10 18:32:58 +02:00
Dave Smith
773a3dc1f5 Merge pull request #102 from dreid/quiet-cover
Redirect cover module output to .eunit/cover.log
2011-08-05 10:15:15 -07:00
David Reid
0edf52b539 Redirect cover module output to .eunit/cover.log
The cover module calls io:format and io:fwrite directly for several types of
informational messages and warnings.  When using meck to mock covered modules
these warnings are triggered and can cause severe polution of the test output.

We can avoid this by starting cover explicitly then setting the group_leader
of that process to a file handle.
2011-08-05 10:04:14 -07:00
Anders Nygren
2632cbc2cf Generate .hrl file from .mib
Generate .hrl files into include from SNMP MIB files.
Change the order of so .mib files are built before .erl
This is necessary since .hrl files are generated from
the .mib files.
The generated .bin and .hrl files are deleted by clean.

This is a cleaned up version of a patch originally
sent to the rebar mailing list by David Nonnenmacher.
2011-08-05 17:07:23 +02:00
Tuncer Ayaz
f08f13d103 Extend app resource file existence checks 2011-08-05 10:45:21 +02:00
Tino Breddin
578ba06ad9 Add awareness of 'app' parameter to ct module 2011-08-04 18:38:49 +02:00
Tuncer Ayaz
1ef230262b Extend port compiler default env for Darwin 11 32-bit 2011-08-01 16:36:35 +02:00
Tuncer Ayaz
1846a5086c Remove unused function rebar_utils:deprecated/4 2011-07-28 22:29:02 +02:00
Tuncer Ayaz
edf4bbc370 Fix error handling bug in {copy,In,Out} template 2011-07-18 18:58:20 +02:00
Tuncer Ayaz
d9ef6fbd53 Optimize list ops and error reporting in sh/2 2011-07-18 18:58:20 +02:00
Tuncer Ayaz
a9a7d7c02b Apply Tidier suggestions 2011-07-18 18:58:20 +02:00
Tuncer Ayaz
a4ffe1ce62 Use filename:join/1 2011-07-18 18:58:15 +02:00
Tuncer Ayaz
4e0ab4065f Fix grep portability (Reported-by: Andrew Thompson) 2011-07-14 13:03:54 +02:00
joewilliams
d215cae496 get_reltool_release_info now expects consulted data 2011-07-12 09:08:34 -07:00
Andrew Gopienko
695ff290b3 skip appup generation for new app in release 2011-07-11 13:00:17 +07:00
cloudhead
dd9adac8c4 Add support for {copy, src, dst} to templater 2011-07-08 11:32:23 -06:00
Tuncer Ayaz
45f44c2166 Fix {git,Url} support (Reported-by: Garrett Smith) 2011-07-08 14:04:11 +02:00
Tuncer Ayaz
7118ec6612 Use auto-imported element/2 2011-07-08 14:01:25 +02:00
Tuncer Ayaz
1ec92ebac3 Do not warn if pre_/post_ cmd is not available 2011-07-08 13:40:47 +02:00
Tuncer Ayaz
cc2447f1b1 Correct sub_dirs loop log message 2011-07-07 15:31:43 +02:00
Tuncer Ayaz
e0a86868ca Log if sub_dirs loop is detected 2011-07-06 20:31:40 +02:00
Tuncer Ayaz
8263f12594 Add support for $HOME/.rebar/config 2011-07-06 20:14:15 +02:00
Tuncer Ayaz
b571e7b52f Fix logging (reported-by Sergey Yelin) 2011-07-04 13:07:24 +02:00
Joe Williams
18d4ddc8d0 Merge pull request #90 from smarkets/upgrade-fixes
look for new and old versions in the target parent
2011-07-01 11:16:14 -07:00
Steven Gravell
d00845b490 default module appup instruction -> load_module 2011-07-01 18:28:48 +01:00
Steven Gravell
0f5e393292 look for new and old versions in the target parent
The target_dir config in reltool allows you to put your release in
a directory other than in ./NAME, so we should look in the parent
directory of that to find the new and old versions instead of
simply looking in ./

Move untaring and retaring into a temporary path instead of in ./
to prevent name collisions with "releases" and "lib" that might
exist already. Having a subdirectory rel/releases/ can be useful.
2011-07-01 18:04:32 +01:00
Mathias Meyer
2e64e91c0c Add options for escript shebang, command, emu_args
Allows customizing the arguments handed over to the Erlang VM, e.g. to
set a name or a cookie, e.g. by setting escript_emu_args to:

%%! -name rebar -setcookie rebar
2011-06-14 12:13:09 +02:00
Tuncer Ayaz
013a49a941 Add list-deps to completion and abbrev-cmds 2011-06-10 17:20:49 +02:00
Jared Morrow
b67b7eaa6b Add command listing for list-deps 2011-06-10 09:11:45 -06:00
Tuncer Ayaz
fbd2778c04 Deprecate xrl_opts/yrl_opts fail_on_warning opt 2011-06-08 19:44:57 +02:00
Tuncer Ayaz
ca3368a6b4 Remove leftover references to rebar_dialyzer 2011-06-07 01:11:32 +02:00
Dave Smith
719c9a50c7 Merge pull request #81 from evanmiller/em-protobuffs
Recursively search "src" for .proto files
2011-06-06 08:33:50 -07:00
joewilliams
7ac00a73e8 Remove rebar_dialyzer 2011-06-06 17:12:08 +02:00
Dave Smith
ab116276b7 Merge pull request #80 from hyperthunk/plugin-hooks
Allow plugins to run before/after a rebar command.
2011-06-06 08:02:50 -07:00
Tuncer Ayaz
1e342faee8 Apply Tidier suggestions 2011-06-02 22:09:11 +02:00
Juhani Rankimies
8eb1fc8308 Make port compilation template configurable
- Port compiler no longer requires bash on windows.
- It's possible to use compilers whose command lines don't fit into
  the default template
2011-06-02 20:13:00 +02:00
Evan Miller
f389e79d39 Recursively search "src" for .proto files 2011-06-01 13:29:47 -05:00
Tuncer Ayaz
5c0b46d92d Minimize compile options 2011-06-01 18:56:01 +02:00
Tuncer Ayaz
5b3082f443 Fix erlc regression (reported-by Benoit Chesneau) 2011-06-01 14:29:54 +02:00
Tuncer Ayaz
3a8b4d5e8f Cleanup deprecations now that R14B03 is released 2011-05-31 11:15:18 +02:00
Tuncer Ayaz
70137292e1 Extract code to get wordsize into helper function 2011-05-31 10:52:23 +02:00
Steve Vinoski
0bbb2985f0 Use external wordsize to get emulator build arch
Calling erlang:system_info(wordsize) yields the internal word size of
the Erlang emulator. But due to the halfword emulator, need to pass
{wordsize, external} instead to get the word size, or pointer size, as
seen by external code such as NIFs. The halfword emulator has 4 byte
internal words but 8 byte external words due to 64-bit compilation,
which means NIFs for the halfword emulator also have to be compiled
64-bit. But just passing wordsize is equivalent to passing {wordsize,
internal}, which does not indicate the pointer size for the halfword
emulator.

Older versions of Erlang do not support {wordsize, external}, though,
so continue to pass just wordsize for those versions.
2011-05-31 10:47:45 +02:00
Andrew Tunnell-Jones
aef6c70f59 Change arch-specific port_sources to take a list
Change the second parameter of a regex tagged port_source from being a
filename or wildcard to being a list of filenames or wildcards.

Previously: {"R14", "c_src/*.c"}
Now: {"R14", ["c_src/*.c"]}

Motivation for change is to avoid repeating regexes.
2011-05-28 15:31:51 +02:00
Shunichi Shinohara
862ae1f192 Abort if xref emits warnings 2011-05-25 20:28:32 +02:00
Tuncer Ayaz
d7f5016920 Abort if dialyze emits warnings 2011-05-25 19:34:10 +02:00
joewilliams
b7e20f3234 Better org. of how upgraded apps are determined
get_apps/3 now returns which apps have been added, removed and ugpgraded
in a reasonable way. It should prove more usable should we want to
access any of those lists in future appup related changes.
2011-05-24 10:48:19 +02:00
Tuncer Ayaz
1628879b21 Fix leftover whitespace errors 2011-05-23 16:32:22 +02:00
Tim Watson
c07b0954eb Allow plugins to run before/after a rebar command.
This patch makes a small change in rebar_core that checks the list
of valid plugins to see if any of them export a pre/post processing
function for the current command. This logic is applied only to the
plugins and allows plugin authors to hook into rebar's execution by
using a naming convention that matches the one used for scripting hooks.

Example:

```erlang
-module(my_rebar_plugin).
-export([pre_compile/2]).
pre_compile(Config, AppFile) ->
    rebar_log:log(debug, "PRECOMPILE: ~p:~p~n",
                  [AppFile, Config]),
    ok.
```
2011-05-23 12:46:03 +01:00
Tuncer Ayaz
892dc48a86 Fix indentation errors 2011-05-23 12:24:55 +02:00
Tuncer Ayaz
39f8b344bc Fix indentation errors 2011-05-21 16:46:55 +02:00
Dave Smith
ea8aca4519 Merge pull request #69 from maxlapshin/master
I've added variable expansion in replace overlay
2011-05-20 08:23:19 -07:00
Anthony Molinaro
bc5aebcf5f Change logic to support more port env use cases
The logic changes from strict overrides to a hybrid for merging os_env
and defaults, whereby defaults are chosen if they are not set in the
os_env or if the defaults contains substitutions (at which point os
environment is substituted).

This still means that rebar.config works as it did before, where it
overrides or substitutes based on the use of $VAR, but that default
and os environment merging works such that the common cases of
providing CC or LDFLAGS in the users environment or command line work
as you might expect.  In that CC is overriden by the os environment
unless rebar.config overrides it, and LDFLAGS from the user environment
is appended or prepended based on defaults and rebar.config.

Addresses problems with https://github.com/basho/rebar/pull/71
Also keeps the fix for bug 255.
2011-05-13 10:23:08 -07:00
Tuncer Ayaz
096e56d61c Fix code readability in port_compiler 2011-05-12 00:14:25 +02:00
Max Lapshin
8666d57d78 Expand variables in replace overlay 2011-04-29 14:58:31 +04:00
Tuncer Ayaz
f51e3df3b9 Add missing newline in port_compiler debug msg 2011-04-28 18:39:46 +02:00
Tuncer Ayaz
61c564bf72 Update mustache.erl 2011-04-27 10:19:34 +02:00
Andrew Thompson
2e654513dd Fix eunit regression (reported-by Alexander Dorofeev) 2011-04-23 17:17:49 +02:00
Tuncer Ayaz
98312c881f Adjust deprecation message 2011-04-21 22:03:40 +02:00
Tuncer Ayaz
20dfd32c85 Add support for command-specific env for hooks 2011-04-21 21:38:16 +02:00
Dave Smith
85eb2957c3 Add list-deps command 2011-04-21 06:08:40 -06:00
Evax Software
447417098a Support settable plt dir for dialyzer
Allow rebar to use dialyzer plt files from an alternate directory
through the use of the REBAR_PLT_DIR environment variable.
2011-04-12 15:46:15 +02:00
Tuncer Ayaz
67af251d52 Remove lfe_opts (suggested by Tim Dysinger) 2011-04-11 14:08:39 +02:00
Dave Smith
bda6ee0e48 Centralize variable resolution; add target_dir variable 2011-04-10 16:12:50 -06:00
Dave Smith
4dc2414d89 Add support for priv/<vcs.vsn> as fallback for version info 2011-04-10 16:12:50 -06:00
Dave Smith
c4907b6297 Add support for loading template vars from external file 2011-04-10 16:12:50 -06:00
Dave Smith
3e2baf1a07 Add support for template_wildcarding; allows files from many directories to be templated. 2011-04-10 16:12:50 -06:00
Dave Smith
b7111dce85 Refactor overlay_vars to enable overrides from command-line 2011-04-10 16:12:50 -06:00
Dave Smith
4be3631687 Make sure to pass dir of app when invoking git; enhance shell logging output 2011-04-10 16:12:50 -06:00
Tuncer Ayaz
055ac99d6f Deprecate fail_on_warning and refactor code 2011-04-07 21:56:53 +02:00
Tim Watson
2d385970bf Pass extra params to ct (thanks Mickael Remond)
This patch adds a `ct_extra_params` option to rebar.config, the value
of which is appended to the shell command when executing common test.
2011-04-06 20:11:13 +02:00
Andrew Thompson
310a1bb7ea New eunit param skip_app, allow suite to be a list
This patch allows the 'suite' argument to eunit to be a comma separated
list of modules to test instead of being a single module. This allows
fine-grained testing when one test suite interferes with another and its
not clear which suite is causing the problem. It also lets you run the
test suite in a different order for a similar reason.

The other enhancement is to add a new eunit parameter; 'skip_app' which
like 'app' is a comma separated list of modules to skip testing on. This
parameter is only applied if the app parameter is not passed. Its
purpose is to avoid forcing you to specify all the apps to test if you
only want to skip a handful and there are many apps to test.
2011-04-06 18:56:35 +02:00
Tuncer Ayaz
153aabee9b Use infinite receive (thanks Hakan Mattsson) 2011-04-04 16:39:05 +02:00
David Reid
300a4ac22e Use abort in check-plt and update doc 2011-04-02 17:57:13 +02:00
Tuncer Ayaz
be209f24ff Make debug_info default
Add no_debug_info option.
Remove debug_info=1 option.
2011-03-30 11:19:37 +02:00
Tuncer Ayaz
6d75bfbeb0 Clean up specs 2011-03-28 18:39:38 +02:00
Jordi Chacon
e684af36f0 Fix bug: xref should be stopped after being run
Xref not being stopped caused a crash in subsequent xref runs.
2011-03-26 12:25:25 +01:00