summaryrefslogtreecommitdiff
path: root/src/rebar_core.erl
Commit message (Collapse)AuthorAgeFilesLines
* update erlydtl compiler to output to _build, add simple testTristan Sloughter2015-03-071-1/+1
|
* Fix namespace regressionsFred Hebert2015-03-071-4/+34
| | | | | | | This adds some more convolution to command parsing, unfortunately, but makes some cases clearer (`rebar3 as as as as` is no longer valid). It unfortunately disallows using $REBAR_PROFILE along with `as` in a rebar command.
* fix code path update for depsTristan Sloughter2015-03-061-37/+1
|
* apply profiles and overrides for an app's opts to the base optsTristan Sloughter2015-03-051-4/+5
|
* fix for profiles_remain_applied_with_config_presentTristan Sloughter2015-03-041-5/+3
|
* support for provider_hooks in configTristan Sloughter2015-01-311-11/+12
|
* replace single profile atom in providers with list of profilesTristan Sloughter2015-01-111-2/+2
|
* Tests and fixes for namespacesFred Hebert2014-12-211-2/+7
|
* Dynamic 'do' provider for namespacesFred Hebert2014-12-211-13/+31
| | | | | | | | | | | Using a namespace such as 'rebar3 lfe new' will look for the 'new' command in 'lfe' namespace without the need for a 'do' provider to be registered in that namespace. Manually checked that 'rebar3 as <profile> <namespace> command' works, as well with 'default' and 'do'. Test suite still needed.
* Add support for namespace-based metacommandsFred Hebert2014-12-211-3/+12
| | | | And more general namespace support
* don't include all */ebin dirs in code pathTristan Sloughter2014-12-161-1/+8
|
* add 'as' higher order taskTristan Sloughter2014-12-161-5/+7
|
* rewrite profilesTristan Sloughter2014-12-161-11/+9
|
* move dir functions from utils to new module rebar_dirTristan Sloughter2014-12-011-4/+4
|
* fixes for dialyzer findingsTristan Sloughter2014-11-301-1/+1
|
* add use of REBAR_PROFILE os var to set default profileTristan Sloughter2014-11-301-4/+3
|
* wip: profilesTristan Sloughter2014-11-291-13/+16
|
* prepend base_dir when expanding code pathTristan Sloughter2014-11-081-2/+3
|
* return error on not found provider for commandTristan Sloughter2014-10-221-12/+16
|
* formattingTristan Sloughter2014-10-111-2/+1
|
* support compile jobs optionTristan Sloughter2014-10-101-6/+11
|
* split options up by taskTristan Sloughter2014-10-101-2/+11
|
* move providers to separate appTristan Sloughter2014-10-031-4/+4
|
* return error messages from providersTristan Sloughter2014-09-271-6/+14
|
* slowly widdling away at dialyzer errorsTristan Sloughter2014-09-201-2/+0
|
* install plugins to plugins/Tristan Sloughter2014-09-201-8/+12
|
* add plugin templateTristan Sloughter2014-09-201-1/+2
|
* add do taskTristan Sloughter2014-09-181-4/+4
|
* improved dep handling and add package list taskTristan Sloughter2014-08-241-1/+1
|
* simplify dep download and buildingTristan Sloughter2014-08-231-1/+1
|
* refactoring and remove unused providers for nowTristan Sloughter2014-08-231-1/+2
|
* only build unbuilt depsTristan Sloughter2014-08-181-4/+4
|
* start of moving to splitting state from config parsingTristan Sloughter2014-08-171-41/+12
|
* add rebar update providerTristan Sloughter2014-08-161-2/+2
|
* move back to single command with arguments for comamnd after itTristan Sloughter2014-08-161-3/+3
|
* large refactoringTristan Sloughter2014-08-161-594/+35
| | | | | | | | Removed separate compilers Resolves apps to build Finds avail deps before pulling/building Includes relx Simplifies build commands
* Fix OS X resource fork handling (Reported-by: Richard O'Keefe)Tuncer Ayaz2014-07-251-2/+1
| | | | | | | | | If you happen to fetch a zip archive of the git repo and try to build from that, you may, for example, ask erlc to build src/._rebar.erl. ._* are OS X resource forks and not real .erl files. This may also happen with network filesystems on OS X. To fix that, limit the files compiled by rebar to include only those which start with a letter or a digit.
* Add REBAR to environment before executing hooksTino Breddin2014-06-021-1/+2
| | | | | | | | REBAR will be set to the rebar binary which was executed and runs the builds. Enables the use of the same binary for rebar invocations as part of a pre or post hook like so: ${REBAR} escriptize
* Fix #267 (code path regression)Tuncer Ayaz2014-04-231-43/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the introduction of -r/--recursive, deps were not properly added to the code path when running ct, eunit, etc. To fix that, pass a flag down to process_dir1 and conditionalize execution of the command. This moves the decision into process_dir1 where we can decide to invoke preprocess/2 and postprocess/2 but not execute the command. Without this fix, you'd have to, for example, invoke 'rebar -r ct skip_deps=true', if you wanted to run base_dir's ct suites with deps on the code path (while skipping all non-base_dir ct suites). So, with this patch applied, if you run $ rebar ct deps will be on the code path, and only base_dir's ct suites will be tested. If you want to test ct suites in base_dir and sub_dirs, you have to run $ rebar -r ct skip_deps=true If you want to test ct suites in all dirs, you have to run $ rebar -r ct The fix is not specific to ct and applies to all commands. To be able to add inttest/code_path_no_recurse/deps, I had to fix .gitignore. While at it, I've updated and fixed all entries.
* rebar_core: consistently order args and simplify codeTuncer Ayaz2014-04-201-59/+55
| | | | | | | | | | | | | * Fix arg order: The order of arguments got inconsistent over time. To fix that, use the same consistent order in all functions. * Avoid one erlang:'++'/2 call in process_dir/6. * Avoid lists:prefix/2 and atom_to_list/1 calls: We can easily avoid 2 lists:prefix/2 calls and one atom_to_list/1 call in execute/5 by passing in whether the command is a hook or not. The resulting code is simpler and easier to read.
* Fix 'rebar generate' regression (#253)Tuncer Ayaz2014-03-301-1/+21
| | | | | | | | | | If the directory we're about to process contains reltool.config[.script] and the command to be applied is 'generate', then it's safe to process. We do this to retain the behavior of specifying {sub_dirs, ["rel"]} and have "rebar generate" pick up rel/reltool.config[.script]. Without this workaround you'd have to run "rebar -r generate" (which you don't want to do if you have deps or other sub_dirs) or "cd rel && rebar generate".
* Fix #56 (always-on recursion)Tuncer Ayaz2014-03-111-6/+24
| | | | | | | | | | | | | | | | | | Always-on recursive application of all rebar commands causes too many issues. Recursive application is required for: 1. dealing with dependencies: get-deps, update-deps, and compile of deps right after get-deps or update-deps 2. projects with a riak-like apps/ project structure and dev process The vast majority of projects are not structured like riak. Therefore, moving forward it's best to (by default) restrict recursive behavior to dealing with deps. This commit does that and also adds command line and rebar.config options for controlling or configuring recursion. Also, we introduce two meta commands: prepare-deps (equivalent to rebar -r get-deps compile) and refresh-deps (equivalent to rebar -r update-deps compile). riak-like projects can extend the list of recursive commands (to include 'eunit' and 'compile') by adding {recursive_cmds, [eunit, compile]} to rebar.config.
* Fix regression caused by 252b31f (#90)Tuncer Ayaz2014-01-011-1/+6
|
* rebar_core: minor comment fixTuncer Ayaz2014-01-011-1/+1
|
* rebar_core: fix Dialyzer warning introduced in aa46d85 (#157)Tuncer Ayaz2013-11-261-1/+1
|
* Merge pull request #155 from tuncer/fixesJared Morrow2013-11-261-1/+1
|\ | | | | Fixes for #137 and #142
| * 'current_command' has to be stored in xconfTuncer Ayaz2013-10-161-1/+1
| |
* | Don't badmatch if a path we think we added isn't in the code pathAndrew Thompson2013-10-171-1/+1
| |
* | Don't over-aggressively clean the code path in the presence of lib_dir ↵Andrew Thompson2013-10-161-4/+5
|/ | | | | | | | | | | | | | | | | | | | | | | directives Rebar, when it encounters a lib_dir directive, caches the current code path, adds the libdir(s) and returns the cached copy of the path. When rebar has finished processing that directory, it restores the cached path. This is problematic in the below scenario: /(lib_dir)->G A -> B -> C -> D -> E \-> F -> D -> E When rebar is finished processing B, it restores the code path to what it was before it processed B, removing C, D, E and G from the code path. This means when it comes to process F, neither D or E are in the code path, so any header includes, rebar plugins or parse transforms will not be in the code path. Without the lib_dir directive, rebar does no code path cleanups, so everything works fine. This change makes rebar only remove the explicit lib_dir code paths it added and adds an inttest that replicates the above scenario.
* Address review comments and add inttest for update-depsAndrew Thompson2013-09-301-2/+2
|