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
Tuncer Ayaz
1dcf0d15dc
Log a more descriptive message
2011-08-23 18:54:05 +02:00
Tuncer Ayaz
da31f90d1d
Rename rebar_plugins to plugins for consistency
2011-08-16 17:34:09 +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
8263f12594
Add support for $HOME/.rebar/config
2011-07-06 20:14:15 +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
20dfd32c85
Add support for command-specific env for hooks
2011-04-21 21:38:16 +02: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
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
Tuncer Ayaz
3356c2d9e8
Use erlang:function_exported/3
2011-02-21 17:42:10 +01:00
Tuncer Ayaz
63de05d914
Clean up code
2011-02-06 17:41:04 +01:00
Tuncer Ayaz
c466076ffb
Clean up emacs file local variables
2011-01-31 17:55:36 +01:00
Tim Watson
7ac3a5aa9b
Move BUILD_TIME and VCS_INFO macros
...
I have moved these macros from rebar_core.erl to rebar.erl
in order to prevent eunit tests from failing (which they
currently are).
2011-01-29 16:16:37 +01:00
Tuncer Ayaz
3fd3bfc89a
Fix circular dependency
2011-01-27 15:57:55 +01:00
Klas Johansson
6978504d43
Add support for abbreviated command names
...
This change makes it possible to type the beginning (the prefix) of a
command name and rebar will guess the full name of the command,
thereby saving the user precious keystrokes. As long as the prefix
matches only one command, rebar runs that command, otherwise rebar
prints a list of candidate command names. The "-" character is
considered to be a word separator and the prefix matching is done per
word.
Example prefix matches:
co ==> compile
cl ==> clean
create ==> create
create-a ==> create-app
c-a ==> create-app
c-app ==> create-app
2011-01-24 17:18:33 +01:00
Tuncer Ayaz
d1ff83a898
Move command line handling funs into rebar.erl
2011-01-24 17:17:23 +01:00
Tuncer Ayaz
932eb2e343
Simplify rebar_core
2011-01-13 17:39:14 +01:00
Tuncer Ayaz
d922985b36
Fix typos
2011-01-13 17:39:14 +01:00
Tuncer Ayaz
a8870807fc
Fix code clarity
2011-01-13 17:39:14 +01:00
Tuncer Ayaz
d8e50e8c2d
Implement update-deps and disable auto update
2010-12-17 12:39:50 +01:00
Anders
513ae33c5c
Add possibility to specify rebar config for the "main" application
2010-11-09 20:19:38 -07:00
Andrew Thompson
ff5a7982eb
Improve error logging when running a command fails
...
Make the error message newline terminated and, if possible, log the name
of the module in which the failure occured.
2010-10-29 11:52:13 -04:00
Kostis Sagonas
7dc76d578e
Tidier improvements
2010-10-26 00:38:51 +02:00
Tuncer Ayaz
2d2aed627f
Refactor Dialyzer support to make it more usable
2010-10-25 22:37:18 +02:00
Kostis Sagonas
e024778599
Dialyzer related cleanups
2010-10-10 14:11:13 -06:00
Tuncer Ayaz
933e4f7620
Fix dialyzer warning. Thanks Kostis
2010-10-01 14:37:42 +02:00
Tuncer Ayaz
1712425588
Fix another filename:join/2 warning. Thanks Kostis
2010-10-01 13:39:02 +02:00
Tuncer Ayaz
33918a0612
Remove 'install' from available commands list
2010-08-25 22:32:42 +02:00
Andrew Thompson
24cc775e88
Warn when a command is not implemented. Fail when no supplied commands are implemented
...
Rebar currently doesn't give any feedback on an invalid command. This change
makes rebar keep track of how many operations each command triggers, if a
particular command doesn't change the count, there were no modules implementing
it. If at the end of handling all commands, tje count is 0, none of the supplied
commands were valid and ?FAIL is called to trigger a non zero exit status.
2010-07-25 01:56:46 -04:00
Dave Smith
ed59ed2b52
Fix bug 629; updated help for new common_test command
2010-08-20 09:53:23 -06:00
Dave Smith
b063d3b8df
Fix bug 438; add support for listing available templates
2010-08-20 09:30:37 -06:00
Tuncer Ayaz
688430fac0
Document doc command
2010-06-30 20:25:13 +02:00
Dave Smith
02bc52fc6a
Add support for embedding VCS info into the version data
2010-06-22 13:47:06 -06:00
Dave Smith
ad7a494bde
Change semantics of skip_deps=true such that deps still get pre/post processed, just not actually run
2010-06-21 10:24:01 -06:00
Klas Johansson
4dae6318aa
Bugfix call to lists:member/2 in ulist/2
...
Change from lists:is_member/2 to lists:member/2, since the former
doesn't exist (the bug only affects rebar_plugins).
2010-06-19 10:08:34 +02:00
Dave Smith
9dda9c2578
Re-adding support for plugin modules
...
--HG--
extra : rebase_source : 90052500da62af1d32337f2d540acb39fdf67db4
2010-06-09 13:45:55 -06:00
Dave Smith
3df1d4292a
Heavy-duty refactor to support truly transitive dependencies
...
--HG--
extra : rebase_source : 41c7f1c337a7cb63582aecd7b87ba998b40ba3aa
2010-06-09 13:16:58 -06:00
Dave Smith
a2f1b62d74
Slightly different fix for bug#5 that avoids running preprocess twice
2010-06-08 13:31:43 -06:00
Dave Smith
623200ec17
Adding rt for bug 5
2010-06-04 12:21:24 -06:00
Dave Smith
30ae41dafd
Minor cleanup of acc_modules for readability
2010-06-03 15:12:13 -06:00
Dave Smith
1866f65758
Refactor/simplify things since we only run one command at a time (versus a string of them)
2010-06-03 14:47:13 -06:00
Bob Ippolito
35a928ecf2
merge ssh://hg@bitbucket.org/basho/rebar
2010-05-15 13:59:33 -07:00
Bob Ippolito
9dd9585d5b
include source path in compiler errors, process commands separately (to make get-deps compile work), ensure ebin dir, process iteratively to support transitive deps
2010-05-15 13:57:07 -07:00
Bob Ippolito
124897e937
run plugins once, do not run as a preprocessor, add ebin to path early
2010-05-11 13:07:13 -07:00
Bob Ippolito
89b57e3aa4
when using plugin_modules, add ebin to path
2010-05-11 12:33:52 -07:00
Bob Ippolito
66f44c6362
fix backwards match for debugging print
2010-05-11 12:07:19 -07:00
Bob Ippolito
92be7a38bf
rebar_plugins in rebar_config to allow extensions
2010-05-11 08:35:47 -07:00
Bob Ippolito
59ab113f3b
Run the preprocess again if subdirs were compiled, fixes http://bitbucket.org/basho/rebar/issue/5
2010-05-08 07:07:28 -07:00
Bob Ippolito
100f277192
comment typo
2010-05-08 04:52:52 -07:00
Jeremy Raymond
8e195e5337
Make 'command does not apply' warning into a warning
2010-05-11 12:22:12 -04:00
Bob Ippolito
317655f724
comment typo
2010-05-08 04:52:52 -07:00
Bob Ippolito
f436d7cd3c
add variables for create-app and create-node to help
2010-05-08 03:49:10 -07:00
Tuncer Ayaz
914e5fbf68
New commands and opts (-V/--version/version/help)
2010-05-03 11:38:27 +02:00
Dave Smith
29a3d7267c
Merging w/ mainline
2010-04-17 07:35:40 -06:00
Dave Smith
266d82f871
Add simple warning if no modules are interested in handling a command for a given directory
2010-04-17 07:34:54 -06:00
Tuncer Ayaz
1e8916ba87
Document xref command
...
Also add a sleep after printing so that the io server has
written all output before exiting. It's a work around.
2010-04-15 20:20:20 +02:00
Tuncer Ayaz
0f494c2a14
Add check-deps to shell completion and commands info
2010-03-26 19:28:01 +01:00
Tuncer Ayaz
3dfc7a8486
Add get-deps and delete-deps to commands info and shell completion
...
Add get-deps and delete-deps to commands info string and
bash completion script.
2010-03-17 01:26:32 +01:00
Dave Smith
c71ec1d68f
Merging w/ mainline
2010-03-16 13:30:52 -06:00
Dave Smith
be6bb20c59
Revamp deps system to NOT pull down deps automatically. You must now use pull-deps explicitly
2010-03-16 13:30:22 -06:00
Tuncer Ayaz
ebfb1dc40d
Add option to show available commands
...
Implement new option -c/--commands to print available
commands and its variables.
2010-03-08 21:14:06 +01:00
Dave Smith
28d3b75641
Fix bug in templater where escript was not found in subdirs were specified in rebar.config; minor formatting cleanups
2010-02-20 20:15:07 -07:00
theiw
788bd3df72
Provide package support for eunit; build_plt now includes listed applications; begin including -spec annotations
2010-02-05 17:34:38 +00:00
Tuncer Ayaz
2734f2bcc2
Do not print dynamic escript name in usage info
2010-02-02 12:56:16 +01:00
Tuncer Ayaz
e9ddd08e2a
Simplified usage info printing with getopt v0.2
2010-01-09 00:36:29 +01:00
Tuncer Ayaz
fb0cee2afb
Implemented option to specify number of concurrent workers a command may use
2010-01-06 17:31:14 +01:00
Dave Smith
fa2a58261a
Another round of refactoring to yield better flexiblity in the base_compiler system
2010-01-03 22:53:04 -07:00
Dave Smith
18e1b37e6f
Break out command line argument parsing to a dedicated routine
2010-01-01 06:22:25 -07:00
Dave Smith
48c2c169ab
Merging w/ bitbucket
2009-12-31 19:31:00 -07:00
Dave Smith
02fa5f6f42
Make sure to reset CWD after processing subdirs; also filter out missing dirs when restoring code path
2009-12-31 19:29:33 -07:00
Tuncer Ayaz
0817dec7ca
Rolled back getopt to restore custom variables
2010-01-01 00:08:00 +01:00
Tuncer Ayaz
9a8015f2d7
Added vi modeline/emacs local variables to file headers
2009-12-31 19:42:53 +01:00
Tuncer Ayaz
940f9c232b
Enhanced option parsing with new getopt and made rebar more user friendly
2009-12-31 18:00:02 +01:00
Tuncer Ayaz
8c85021c1e
Deleted trailing whitespace
2009-12-30 13:13:39 +01:00
Tuncer Ayaz
b1b29e0858
Implemented getopt option support
2009-12-29 20:09:28 +01:00
Dave Smith
2f64f0e6b2
Refactoring core logic in preparation for dependency mgmt; breaking out sub_dir determination into dedicated module
2009-12-25 23:19:09 -07:00
Dave Smith
d051534b97
Minor formatting fix
2009-12-20 06:20:05 -07:00
Dave Smith
be754bb6ef
Make sure to fail if run_modules generates ANY error. Thanks, Rusty. :)
2009-12-14 17:11:25 -05:00
Dave Smith
d6600ab506
Fixing number of warnings and buglets
2009-12-14 08:58:22 -05:00
Dave Smith
5618198eeb
Merging mainline
2009-12-12 07:43:12 -07:00
Dave Smith
3990f0a076
Refactor of core logic to provide better control over recursion and code path mgmt
2009-12-12 07:34:29 -07:00
Dave Smith
d894dc5448
Make sure crypto is running as lots of things use it
2009-12-09 21:59:58 -07:00
Dave Smith
b088139ed0
Remove unnecessary debug in _core; adding EQC flag for eunit builds
2009-12-08 15:52:53 -07:00
Dave Smith
ffa0cda467
Updating bootstrap to embed the build time into a macro that we can pull via "version" command
2009-12-07 16:03:56 -07:00
Dave Smith
b491898690
Refactor rebar to build a self-contained script
2009-12-04 13:48:57 -07:00
Dave Smith
a979f4f575
If failure is controlled (i.e. via ?FAIL macro), don't print out that it failed (expectation is that the caller already did that)
2009-12-03 09:41:10 -07:00
Dave Smith
a01e7dcd30
Adding first crack at reltool support
2009-12-02 05:15:35 -07:00
Dave Smith
3765b86653
Adding support for subdirs
2009-12-01 20:34:18 -07:00
Dave Smith
c828f59056
Fix some minor typos; create simple install/bootstrapping script
2009-11-29 16:53:53 -07:00
Dave Smith
28fe3bfd54
More gross structural work; now has log levels and broken out log level control
2009-11-29 16:44:30 -07:00