Commit graph

510 commits

Author SHA1 Message Date
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
Tuncer Ayaz
2ee4899d24 Fix code clarity and formatting 2011-03-22 11:12:57 +01:00
Shunichi Shinohara
cd3653616b Fix ct include option prefix 2011-03-22 11:08:45 +01:00
Tuncer Ayaz
fa38ed64cc Simplify find_dep_in_dir 2011-03-13 15:55:36 +01:00
Tuncer Ayaz
85e820096d Fix comments 2011-03-13 14:11:24 +01:00
Tuncer Ayaz
4ceb9e07a3 Deprecate old hooks 2011-03-12 16:48:16 +01:00
Tuncer Ayaz
bc98a4820e Simplify hook changes to rebar_core 2011-03-12 16:32:44 +01:00
Tim Watson
e76770511a Add pre and post script support for all commands
This change makes it possible to assign pre/post scripts to all
rebar commands. This allows users fine grained control over
when scripts and/or shell commands should be executed, where such
extensions are absolutely needed.

Several examples have been added to the rebar.config.sample file.
2011-03-12 16:31:41 +01:00
Tuncer Ayaz
81be474c30 Fix regression (thanks Anthony Molinaro) 2011-03-07 20:16:29 +01:00
joewilliams
0f99ba2280 Fix bug that causes appup generation to fail
This commit changes how rebar determines which apps have been
updated, added and removed from a release during appup generation.
Rather than use app files it now determines this from the rel file
in each version of the release. In addition it fixes a bug reported
on the mailing list when generating appups when an application has
been added or removed from either release.
2011-03-03 16:02:37 -08:00
Christopher Brown
0a603435f5 honor local deps before code path 2011-03-02 21:06:30 -08:00
Juan Jose Comellas
58661a92e2 Convert the entries in the code path to absolute paths
Rebar will exit with {error,bad_directory} when trying to restore the code
path after it has finished working on a subdirectory if there are invalid
relative paths in it. The problem was seen when executing the last line of
rebar_erlc_compiler:doterl_compile/3 (true = code:set_path(CurrPath)).
2011-02-26 15:57:17 +01:00
joewilliams
90d2ce5e07 Ignore app files not in ebin 2011-02-25 18:38:50 +01:00
Tuncer Ayaz
2cff499a34 Fix regression in rebar_lfe_compiler 2011-02-22 17:28:49 +01:00
Tuncer Ayaz
3356c2d9e8 Use erlang:function_exported/3 2011-02-21 17:42:10 +01:00
Tuncer Ayaz
c6f6e8a572 Fix Dialyzer warning and slightly reformat code 2011-02-21 15:43:07 +01:00
Tim Dysinger
6f97e6e55b Add up to date instructions in case LFE is missing 2011-02-21 15:29:50 +01:00