Commit graph

784 commits

Author SHA1 Message Date
Tuncer Ayaz
e75a97ad33 Add 'qc' cmd and rename eunit-compile to test-compile 2012-07-23 16:22:06 +02:00
Tuncer Ayaz
902dcdf3ff Add 'eunit-compile' cmd (Suggested-by: Joe Norton) 2012-07-23 13:28:38 +02:00
Tuncer Ayaz
252757c753 Do not use application:set_env 2012-07-23 13:17:11 +02:00
Tuncer Ayaz
3c56fbab6f Restore old reltool vsn check
reltool is missing an app resource file before R14A.
Therefore, restore the old check and add TODO.
2012-07-22 12:41:55 +02:00
Tuncer Ayaz
86c69bc253 Fix Dialyzer warning 2012-07-21 17:56:53 +02:00
Ulf Wiger
6996cd4fcc Use a more appropriate method to check reltool's vsn
If running e.g. rebar generate using an OTP development build,
rebar will complain that reltool has the version "", which is
less than the required "0.5.2". This is because rebar_reltool
simply checks the path returned by code:which(reltool), which
doesn't yield version information if used in a development build.

This patch substitutes a more robust method (load reltool and
fetch the info from application:loaded_applications()).

As it happens, this will not be enough to make things work,
but now Reltool will explain that it cannot generate a spec
from a system that is not installed, giving a better hint
as to what needs to be done.
2012-07-21 17:52:01 +02:00
Tuncer Ayaz
5a4ddd5524 Do not keep eunit config 2012-07-13 22:48:20 +02:00
Tuncer Ayaz
e1c9d69d1d Do not use rebar_config:set_global in rebar_templater 2012-07-13 21:43:30 +02:00
Tuncer Ayaz
d9e6cc3d90 Do not use process dict in rebar_templater 2012-07-13 21:43:14 +02:00
Tuncer Ayaz
4fe3306d99 Document rebar_config TODOs 2012-07-13 15:22:01 +02:00
Tuncer Ayaz
db78956295 Make sure cached setup_envs are reset 2012-07-13 15:22:01 +02:00
Tuncer Ayaz
e185e86bff Remove shared state 2012-07-13 15:21:56 +02:00
Tuncer Ayaz
1948eb4a47 Re-word comment 2012-07-12 00:39:30 +02:00
Tuncer Ayaz
94958d05d5 Add missing comment in rebar_erlc_compiler 2012-07-12 00:37:10 +02:00
Tuncer Ayaz
e4fb80799b Remove debug log 2012-07-11 23:40:28 +02:00
Tuncer Ayaz
015858b2d3 Simplify eunit 2012-07-11 20:36:41 +02:00
Tuncer Ayaz
990e60f120 Use filename:join 2012-07-11 18:44:48 +02:00
Dave Smith
ce39b1d8bd Merge pull request #157 from dch/dch-windows-msvc-support
add native Windows compiler support
2012-07-11 07:58:51 -07:00
Kresten Krab Thorup
4541f8f5db Fix crazy indentation :-) 2012-07-11 08:42:48 -06:00
Kresten Krab Thorup
b890421cae Allow crypto to already be loaded when starting rebar 2012-07-11 08:42:48 -06:00
Kresten Krab Thorup
c71bbf6a0d untabify and add some comments 2012-07-11 08:42:48 -06:00
Kresten Krab Thorup
5b765e028f Initial version of "rebar shell" command
For now, this is just a proof of concept; would make sense to add a lot
of things, such as quick access to invoking rebar itself (with approproate 
code reloading), as well as an eunit-aware version so that tests could be 
run interactively.
2012-07-11 08:42:47 -06:00
Fred Hebert
57fc7f6474 Change escriptize archive permissions to a+x
By default, executables in paths such as /bin and /usr/local/bin have
the mode saying they can be executed by all.

The current version of escriptize only sets u+x, which creates problems
when copied directly in repositories and requiring other programs to
interact with them.

This change makes rebar follow the standard of linuxes and unixes by
setting the permission flag to a+x, allowing users, the group and others
to execute it.
2012-07-10 10:42:41 +02:00
Eric B Merritt
ec3927f9b0 Fix eunit testing of apps that have no erl files
'Erlang' projects that do not contain any erlang files (Joxa, LFE,
Elixir, etc) break the eunit task. It attempts to copy an empty list
of source files to the .eunit directory. This change makes copying an
empty list a simple no-op.
2012-07-03 15:18:09 +02:00
Tuncer Ayaz
f5af9d6c21 Fix rebar_eunit whitespace issues 2012-07-02 19:23:25 +02:00
Tuncer Ayaz
9521d3fd86 Clean up rebar_utils exports 2012-07-02 19:13:11 +02:00
Tuncer Ayaz
df9b77633a Move erl_opts/1 and src_dirs/1 to proper place 2012-07-02 18:47:06 +02:00
Motiejus Jakštys
ad2f30ccb9 Fix cover crash if src_dirs is not default
Make sure files from erl_opts->src_dirs are copied to .eunit for cover
inspection.

Without this patch cover failed to find source files which were in
src_dirs, and threw the following exception:

ERROR: eunit failed while processing
/path/to/project:
{'EXIT',{{badmatch,{error,no_source_code_found}},
         [{rebar_eunit,'-cover_analyze/3-fun-0-',1,
                       [{file,"src/rebar_eunit.erl"},{line,280}]},
          {lists,foreach,2,[{file,"lists.erl"},{line,1262}]},
          {rebar_eunit,cover_analyze,3,
                       [{file,"src/rebar_eunit.erl"},{line,279}]},
          {rebar_eunit,eunit,2,[{file,"src/rebar_eunit.erl"},{line,140}]},
          {rebar_core,run_modules,4,[{file,"src/rebar_core.erl"},{line,425}]},
          {rebar_core,execute,5,[{file,"src/rebar_core.erl"},{line,359}]},
          {rebar_core,process_dir0,6,[{file,"src/rebar_core.erl"},{line,223}]},
          {rebar_core,process_dir,4,
                      [{file,"src/rebar_core.erl"},{line,130}]}]}}

Now all source files are copied to .eunit.
2012-07-02 18:46:00 +02:00
Motiejus Jakštys
394c0f43f8 Move erl_opts/1 and src_dirs/1 to rebar_utils.erl
These functions will be necessary in rebar_eunit.erl, too.
2012-07-02 18:46:00 +02:00
Tuncer Ayaz
fd0697239d Use lists:foreach because result is ignored 2012-06-30 23:17:22 +02:00
Tuncer Ayaz
385e3f09ba Decrease indentation in list-templates printout 2012-06-30 22:28:30 +02:00
Tuncer Ayaz
49f3cc4108 Fix crash introduced in 4414f65 via pull/245 2012-06-30 22:14:08 +02:00
Tuncer Ayaz
0c27fd4f7f rebar_templater: fix comment 2012-06-30 22:13:26 +02:00
Daniel Luna
d560ccda0d Use ~p for file:consult/1 {error, Reason} printout 2012-06-29 21:39:20 +02:00
Tuncer Ayaz
4e9e89bd0d Append os family to arch string 2012-06-23 22:05:43 +02:00
Tuncer Ayaz
c41fda6a2f rebar_utils: move internal fun to proper place 2012-06-23 22:00:38 +02:00
Evan Vigil-McClanahan
a78e6cd740 Add support for minimum OTP versions.
Since you can't really do math with regexps and it's a pain to
repeatedly update the config for each new version or erlang, I wanted
to add support for minium OTP versions.  This is a fix for
https://github.com/basho/riaknostic/issues/38
2012-06-21 14:44:51 -07:00
Tuncer Ayaz
4fc3e9bfb6 Add missing comment 2012-06-21 23:01:32 +02:00
Tuncer Ayaz
8bb62032a0 Update -c string 2012-06-21 21:28:34 +02:00
Tuncer Ayaz
e6165c7146 Fix #252 (Reported-by: Maxim-Vladimirsky) 2012-06-21 00:08:51 +02:00
Tuncer Ayaz
b9c6888883 rebar_ct: rename function for clarity 2012-06-21 00:06:40 +02:00
Yurin Slava
7bef458163 Add support for errors without line number 2012-06-18 12:09:58 +02:00
Tuncer Ayaz
3dce05314b Fix rebar_eunit comments 2012-06-18 00:55:51 +02:00
Tuncer Ayaz
c91250d2df Use [{File,Bin}, ...] in escriptize zip:create 2012-06-17 23:03:29 +02:00
Tuncer Ayaz
83879c22e1 Add missing escriptize comments 2012-06-17 22:57:33 +02:00
Tuncer Ayaz
0f961d86c6 Fix #247 (Reported-by: Uvarov Michael) 2012-06-17 16:11:59 +02:00
Tuncer Ayaz
d7037165fd Remove debug log 2012-06-15 19:42:11 +02:00
Tuncer Ayaz
e65455b6ef Simplify temp dir creation 2012-06-14 23:59:36 +02:00
Tuncer Ayaz
1e980859e2 Extend escriptize and reuse in bootstrap 2012-06-14 23:46:55 +02:00
Tuncer Ayaz
8fb552b73f Sync rebar_escripter with bootstrap escript 2012-06-14 23:46:55 +02:00
Tuncer Ayaz
c1a891ce33 Remove gratuitous lists:append/1 2012-06-12 23:40:42 +02:00
Tuncer Ayaz
8e66225e06 Fix error/warning newlines (Reported-by: Tim Watson) 2012-06-12 15:13:20 +02:00
Tuncer Ayaz
8a2274b8b4 Refactor shared error reporting code 2012-06-11 19:42:00 +02:00
Tuncer Ayaz
0716cf708c Add support for {Line,Column} in error reports 2012-06-11 19:42:00 +02:00
Tuncer Ayaz
c3fc279ff9 Manually format lfe errors/warnings 2012-06-11 19:42:00 +02:00
Tuncer Ayaz
658f4847a2 Report warnings as errors if -Werror is enabled 2012-06-11 19:41:51 +02:00
Tuncer Ayaz
dff60918cb Share format_errors/format_warnings functions 2012-06-11 19:40:59 +02:00
Tuncer Ayaz
4e64e0c675 Manually format port_compiler errors with absolute path 2012-06-11 19:40:59 +02:00
Tuncer Ayaz
4b9fcda7ab Manually format leex/yecc errors/warnings 2012-06-11 19:40:59 +02:00
Tuncer Ayaz
50fbabda68 Manually report errors/warnings with absolute path 2012-06-11 19:40:59 +02:00
Tuncer Ayaz
8d81b322ed Fix whitespace errors 2012-06-11 19:33:16 +02:00
hirschen
4414f6548a List substitution variable names in 'list-templates' command. 2012-06-11 15:01:12 +02:00
Tuncer Ayaz
b1d06a4d14 Fix unsafe use of var 2012-06-08 22:14:32 +02:00
Tuncer Ayaz
8a046d898a Fix whitespace errors 2012-06-08 21:56:18 +02:00
Dave Smith
9ec6f37444 Merge pull request #230 from hyperthunk/ct-name
Support ct_run using short name
2012-06-08 07:11:00 -07:00
Dave Cottlehuber
83509e9982 Windows: add native SDK support
- compatible with rebar 2.0.0
2012-06-08 15:47:39 +02:00
Dave Smith
a7d64deb43 Introduce -k flag 2012-06-08 07:06:15 -06:00
Dave Smith
ebdb25c5cc Use delayed_halt everywhere 2012-06-08 07:06:15 -06:00
Dave Smith
c86c99940d Remove ?FAIL in favor of ?ABORT 2012-06-08 07:06:15 -06:00
Tuncer Ayaz
c122eeec75 Fix whitespace errors 2012-06-07 15:34:36 +02:00
Dave Smith
2f0e545ce0 Prefer edoc-info as determining file; overview-summary.html may not
always be generated
2012-06-06 11:56:49 -06:00
Dave Smith
81112cbd07 Only regenerate edocs if a source file is newer than
overview-summary.html
2012-06-06 10:00:56 -06:00
Dave Smith
0f24d93256 Move to major.minor.patch release version; add OTP build version
version info
2012-06-04 08:46:17 -06:00
Tuncer Ayaz
f7d9a9bf8b Fix whitespace errors 2012-06-01 11:45:56 +02:00
Yurin Slava
e4bc95500c Fix #232 (rebar_reltool:mk_target_dir) 2012-06-01 11:38:23 +02:00
Tim Watson
bebd9d2ae6 Support ct_run using short name
Not every system under test can be run with long names, and this makes
rebar's common_test support useless in those environments, as it
currently uses long names (test@hostname.domain) by default, without
recourse to change them.

This patch adds support for a {ct_use_short_names, boolean()} config
variable, which allows the user to specify whether short or long names
are required.
2012-05-22 15:50:26 +01:00
Tuncer Ayaz
15d1c275f8 Simplify and fix check if enter/leaving should be printed 2012-05-18 20:14:33 +02:00
Tuncer Ayaz
4f6ea2fd11 Do not print entering/leaving message if skip_dir 2012-05-18 19:56:02 +02:00
Tuncer Ayaz
635d1a9456 Fix file extension bug (Reported-by: Tony Rogvall) 2012-05-14 22:26:42 +02:00
Nick Vatamaniuc
8d82330802 Add rsync as another option to fetch dependencies
Newly added syntax:

{deps, [ {<depname>, ".*", {rsync, "<rsync_url>"}}, ... ]}

Where rsync_url is any URL accepted by the rsync command.
2012-05-14 10:04:41 +02:00
Tuncer Ayaz
32ddef7158 Remove alt_url support in favor of new features 2012-05-13 19:30:38 +02:00
Tuncer Ayaz
e6d5a494b0 Clarify use of git describe 2012-05-11 23:57:38 +02:00
Tuncer Ayaz
dc472bd958 Do not use inherited port options 2012-04-23 23:14:03 +02:00
Tuncer Ayaz
b2fdce8879 Use dict() instead of proplist() for shared env 2012-04-23 23:13:55 +02:00
Ulf Wiger
afffb4895a Use correct value for file:script SCRIPT binding 2012-04-17 20:36:03 +02:00
Tuncer Ayaz
9c1a877bbe Remove gratuitous blank line 2012-04-17 19:15:47 +02:00
Ulf Wiger
c3c64c1d70 Fix file:script support 2012-04-17 00:14:33 +02:00
Tuncer Ayaz
7c418ed2b4 Add support for target-specific port options
{port_specs, [{".*", "priv/foo.so", ["c_src/foo.c"], [{env, []}]}]}.
2012-04-16 23:17:24 +02:00
Ulf Wiger
b3e9e76f57 Use file:script if a .config.script file present 2012-04-16 22:44:48 +02:00
Tuncer Ayaz
fc83f4b961 Apply Tidier suggestion 2012-04-16 22:09:20 +02:00
Tuncer Ayaz
aeb3081111 Update getopt.erl 2012-04-16 18:02:48 +02:00
Tuncer Ayaz
0e7defaf64 Fix typo in comment (thanks Michael Santos) 2012-04-16 17:42:48 +02:00
Tuncer Ayaz
7864b81e2d Update getopt.erl 2012-04-09 14:36:05 +02:00
Tuncer Ayaz
ae178b851b Fix #209 (Reported-by: Bjorn Bylander)
Use correct ERL_LIBS separator on Windows.
2012-04-04 17:44:36 +02:00
Tuncer Ayaz
4a9dae76a4 Fix #197 by printing 'Entering/Leaving directory' 2012-04-03 20:54:34 +02:00
Amit Kapoor
63f1b1d9d5 Use lists:member/2 to check xref results 2012-04-02 19:14:37 +02:00
Amit Kapoor
0191806f92 Add support for custom xref queries
The custom queries are configured in rebar.config via the tuple
{xref_queries, [{query(), query_result()},...]}.  The implementation
passes the query() string to xref:q and compares the return value with
query_result(). It will result in an error if they do not match.

The following configuration, for example, is the same as running the
xref check undefined_function_calls. It additionally filters
ejabberd_logger:*_msg/4 from the result as these functions are generated
on execution by ejabberd and not available at compile time.

{xref_queries, [{"(XC - UC) || (XU - X - B -
                 (\"ejabberd_logger\":\".*_msg\"/\"4\"))",[]}]}.

This patch also modifies the build process of this package by running a
custom query instead of doing a diff against a static xref_warning file.
2012-04-02 19:14:37 +02:00
Tuncer Ayaz
7bd8cbd8d9 Make error message more descriptive 2012-03-31 19:21:41 +02:00
Adam Schepis
03a026f38f Add support for alternate dependency urls
This change adds the ability to use alternate urls for downloading
dependencies. To make use of alternate urls run:
rebar get-deps alt_urls=true
2012-03-31 19:21:25 +02:00
Ali Yakout
e0d9ca0773 asn1_compiler: only move hrl file if it exists 2012-03-30 16:58:07 +02:00
Tuncer Ayaz
3f14c1c092 Skip erlang:halt/1 workaround if >=R15B01 2012-03-27 14:19:54 +02:00
Tuncer Ayaz
b6fadef5d3 Fix whitespace errors 2012-03-18 18:51:08 +01:00
Loïc Hoguin
2c37270f52 Fix badarg crashes on missing dependency errors 2012-03-18 18:46:04 +01:00
Tuncer Ayaz
9d5557b16f Deprecate port_envs in favor of port_env 2012-03-09 20:21:26 +01:00
Юрин Вячеслав
0424d75d78 Make rebar understand wildcard in subdir
If you have dir with many erlang app, then you can simple write
{sub_dirs, ["some_dir/*"]}. Rebar will make operation on subdirs of
dir "some_dir".
2012-03-09 19:38:34 +01:00
Tuncer Ayaz
4e0c9506f5 Fix src_dirs option to not hard-code "src" 2012-02-24 18:06:52 +01:00
Jesse Gumm
33546cc402 Fix copying dir to non-existing dir in Win32 2012-02-20 19:23:35 +01:00
Jesse Gumm
4f6f41cabb Fix typos in rebar_templater 2012-02-17 12:41:34 +01:00
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