summaryrefslogtreecommitdiff
path: root/src/rebar_utils.erl
Commit message (Collapse)AuthorAgeFilesLines
...
* Overhaul environment expansion for better performanceDave Smith2011-10-261-6/+12
| | | | | | | | | | 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.
* rebar_utils:sh/2: remove bash invocation on WindowsJan Klötzke2011-10-201-18/+6
| | | | | | | | | | | | 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.
* Fix Dialyzer warningTuncer Ayaz2011-09-081-6/+12
|
* Search plugin sources in base_dir and plugin_dirTuncer Ayaz2011-08-291-1/+6
|
* Apply Tidier suggestionsTuncer Ayaz2011-08-201-4/+3
|
* Limit line lengthTuncer Ayaz2011-08-201-3/+3
|
* Support command invocation on Windows without MSYSJan Klötzke2011-08-201-6/+26
| | | | | | 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.
* Remove unused function rebar_utils:deprecated/4Tuncer Ayaz2011-07-281-11/+7
|
* Optimize list ops and error reporting in sh/2Tuncer Ayaz2011-07-181-11/+11
|
* Deprecate xrl_opts/yrl_opts fail_on_warning optTuncer Ayaz2011-06-081-7/+7
|
* Extract code to get wordsize into helper functionTuncer Ayaz2011-05-311-7/+11
|
* Use external wordsize to get emulator build archSteve Vinoski2011-05-311-1/+7
| | | | | | | | | | | | | | | 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.
* Make sure to pass dir of app when invoking git; enhance shell logging outputDave Smith2011-04-101-1/+1
|
* Deprecate fail_on_warning and refactor codeTuncer Ayaz2011-04-071-1/+19
|
* Convert the entries in the code path to absolute pathsJuan Jose Comellas2011-02-261-1/+10
| | | | | | | 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)).
* Clean up rebar_appups and rebar_upgradejoewilliams2011-02-171-35/+0
|
* Add 'generate-appups' commandjoewilliams2011-02-151-1/+41
| | | | | | | | | | | | | | | To further support OTP releases I have added support for generating application appup files. These include instructions that systools uses to generate a relup file which contains the low level instructions needed to perform a hot code upgrade. My goal with this module is to produce "good enough" appup files or at least a skeleton to help one get started with something more complex. If an appup file already exists for an application this command will not attempt to create a new one. Usage: $ rebar generate-appups previous_release=/path/to/old/version Generally this command will be run just before 'generate-upgrade'.
* Clean up codeTuncer Ayaz2011-02-061-1/+1
|
* Clean up emacs file local variablesTuncer Ayaz2011-01-311-1/+1
|
* Apply Tidier suggestionsTuncer Ayaz2011-01-131-8/+8
|
* Add otp_release to platform stringJoseph Wayne Norton2011-01-091-1/+2
|
* Fix Dialyzer warningTuncer Ayaz2011-01-091-3/+5
|
* Remove unused fun rebar_utils:get_os/0Tuncer Ayaz2011-01-091-20/+0
|
* Unify executable invocationJuhani Rankimies2011-01-061-31/+75
| | | | | Add flags to rebar_utils:sh to control output and error handling. Replace calls to os:cmd with calls to rebar_utils:sh.
* Fix bug 805Juhani Rankimies2010-11-221-1/+1
| | | | | | Use rebar_utils:find_executable/1 that wraps the path in quotes to make it work even if it contains whitespace.
* Tidier improvementsKostis Sagonas2010-10-261-2/+2
|
* Clarify rebar_utils:ensure_dir/1 commentTuncer Ayaz2010-10-251-1/+2
|
* Add spec: rebar_utils:abort/2 does not returnTuncer Ayaz2010-10-151-0/+1
| | | | Thanks to Kostis for no_return() result type.
* Update TODO commentTuncer Ayaz2010-10-011-1/+1
|
* Fix dialyzer warning: os:find_executable(string())Tuncer Ayaz2010-09-291-1/+1
|
* Fix dialyzer warnings in scm client vsn checksTuncer Ayaz2010-09-291-1/+5
|
* Basic tweaks for compiling ports/nifs on mingwDan Gudmundsson2010-09-181-2/+21
|
* fix get-deps on win32Juhani Rankimies2010-08-041-1/+5
|
* Taught eunit/coverage to split the src module coverage stats from any test code.Jon Meredith2010-05-031-0/+4
|
* Make sure zip module is loadedTuncer Ayaz2010-03-111-0/+1
| | | | Before we check for zip:foldl/3 make sure zip module is loaded.
* Add escript_foldl/3 TODOTuncer Ayaz2010-03-061-0/+3
| | | | | Comment what has to be done when the new OTP release is out and the time is right.
* Add forward-compatible escript_foldl functionTuncer Ayaz2010-03-051-1/+28
| | | | | | escript:foldl/3 was undocumented and has been replaced with better APIs post-R13B04. The new exported funs are officially documented.
* Update comment for filelib:ensure_dir/1 wrapper.Tuncer Ayaz2010-02-171-8/+1
| | | | The wrapper can now be removed as I've fixed the problem in R13B04.
* Overhaul env expansion so that rebar fully expands env refs prior to ↵Dave Smith2010-02-161-2/+7
| | | | invoking the shell script. Also now using DRV_* env vars for compilation/linking of files found in c_src; this frees up "normal" CFLAGS/LDFLAGS for usage in sub build scripts.
* Break out arch string function; update ERLANG_TARGET to include bitness of ↵Dave Smith2010-02-121-3/+6
| | | | the Erlang target
* Append wordsize to the architecture stringDave Smith2010-02-101-1/+2
|
* Provide package support for eunit; build_plt now includes listed ↵theiw2010-02-051-2/+12
| | | | applications; begin including -spec annotations
* Fixed issue 1 "priv/mibs/ is not automatically created"Tuncer Ayaz2010-01-081-1/+20
|
* Another round of refactoring to yield better flexiblity in the base_compiler ↵Dave Smith2010-01-031-1/+5
| | | | system
* Added vi modeline/emacs local variables to file headersTuncer Ayaz2009-12-311-0/+2
|
* Got basic retrieval of deps from hg sorta working; minor refactoring of ↵Dave Smith2009-12-301-10/+12
| | | | rebar_utils:sh interface
* Silence warnings, courtesy of Tuncer AyazDave Smith2009-12-281-1/+1
|
* Added now_str to return the local time as a string.jmeredith@jons-macbook.local2009-12-031-1/+6
|
* Adding more flexible arch check; adding sh commandDave Smith2009-12-011-1/+41
|
* Slowly working out port driver implementationDave Smith2009-11-301-1/+31
|