Commit graph

470 commits

Author SHA1 Message Date
joewilliams
5298e93a18 Add 'generate-upgrade' command
To support OTP release upgrades I have added support for building
upgrade packages. Support for this is included in the
rebar_upgrade module, specifically generate_upgrade/2. It requires
one variable to be set on the command line 'previous_release' which
is the absolute path or relative path from 'rel/' to the previous
release one is upgrading from. Running an upgrade will create the
needed files, including a relup and result in a tarball containing
the upgrade being written to 'rel/'. When done it cleans up the
temporary files systools created.

Usage:
$ rebar generate-upgrade previous_release=/path/to/old/version

This also includes a dummy application that can be used to test
upgrades as well as an example.

Special thanks to Daniel Reverri, Jesper Louis Andersen and
Richard Jones for comments and patches.
2011-01-27 18:37:39 +01:00
Tuncer Ayaz
3fd3bfc89a Fix circular dependency 2011-01-27 15:57:55 +01:00
Dave Smith
a8066b35a9 Use an order independent method for exact matches when looking for command candidates 2011-01-25 21:29:08 -07: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
a3615a4b82 Update getopt 2011-01-23 16:05:25 +01:00
Tuncer Ayaz
ac5948d910 Add file local variables to nodetool escript 2011-01-21 16:13:14 +01:00
Tuncer Ayaz
6ce2beebd0 Synchronize nodetool escript with riak version 2011-01-21 16:12:50 +01:00
Tuncer Ayaz
0c191a5a60 Update THANKS file 2011-01-17 17:06:55 +01:00
Tuncer Ayaz
3cb4234af2 Add Andrew Tunnell-Jones to THANKS file 2011-01-17 16:58:04 +01:00
Andrew Tunnell-Jones
b52b82cc29 Add support for arch specific port_sources
On one project I have a need to specify port_sources on R14 only
and on another different project port_sources for Darwin and Linux.
To this end add support to handle tuples of the form
{ArchRegex, PortSource} in the port_sources list, eg:

    {port_sources, [{"R14", ["c_src/*.c"]}]}.
2011-01-17 16:57:46 +01:00
Tuncer Ayaz
e66b8c5f7d Update README: coding style 2011-01-17 12:03:30 +01:00
Tuncer Ayaz
1d113b9c25 Update README: coding style 2011-01-15 10:20:35 +01:00
Tuncer Ayaz
260d08a61b Update README: fix formatting 2011-01-14 18:41:31 +01:00
Tuncer Ayaz
d6445b0a15 Update README: document known discrepancies 2011-01-13 18:38:50 +01:00
Tuncer Ayaz
8940f07801 Fix underspec (thanks Kostis Sagonas) 2011-01-13 17:39:14 +01:00
Tuncer Ayaz
932eb2e343 Simplify rebar_core 2011-01-13 17:39:14 +01:00
Tuncer Ayaz
27019e2867 Fix code clarity in bootstrap 2011-01-13 17:39:14 +01:00
Tuncer Ayaz
ebcae06928 Fix grep invocations 2011-01-13 17:39:14 +01:00
Tuncer Ayaz
bb6731208e Fix indentation in rebar_ct 2011-01-13 17:39:14 +01:00
Tuncer Ayaz
3b0568ebb7 Simplify and cleanup rebar_templater 2011-01-13 17:39:14 +01:00
Tuncer Ayaz
150c9d0b47 Simplify and cleanup rebar_xref 2011-01-13 17:39:14 +01:00
Tuncer Ayaz
e4036cbe56 Apply Tidier suggestions 2011-01-13 17:39:14 +01:00
Tuncer Ayaz
d922985b36 Fix typos 2011-01-13 17:39:14 +01:00
Tuncer Ayaz
58fd80917a Fix file existence checks 2011-01-13 17:39:14 +01:00
Tuncer Ayaz
a8870807fc Fix code clarity 2011-01-13 17:39:14 +01:00
Tuncer Ayaz
1f1793cc5e Update README: Dialyzer and Tidier 2011-01-13 17:38:19 +01:00
Tuncer Ayaz
6d6fbacddb Update README formatting 2011-01-13 16:07:51 +01:00
Tuncer Ayaz
84f6d0bed0 Add README and update existing docs 2011-01-13 16:04:56 +01:00
Juhani Rankimies
7b0d970646 Set local scope for env vars in rebar.bat 2011-01-12 17:17:34 +01:00
Joseph Wayne Norton
5b05e54cda Add otp_release to platform string 2011-01-09 16:06:51 +01:00
Tuncer Ayaz
5a37149642 Fix Dialyzer warning 2011-01-09 09:46:08 +01:00
Tuncer Ayaz
220eec71f6 Remove unused fun rebar_utils:get_os/0 2011-01-09 09:45:43 +01:00
Tuncer Ayaz
46b2c0612e Fix bug 770 2011-01-08 19:20:40 +01:00
Tuncer Ayaz
422beee324 Return more descriptive dependency errors 2011-01-06 15:50:16 +01:00
Juhani Rankimies
9441251f9f Use file:change_mode/2 instead of invoking chmod 2011-01-06 15:02:23 +01:00
Juhani Rankimies
52ca7795fe Unify executable invocation
Add flags to rebar_utils:sh to control output and error handling.
Replace calls to os:cmd with calls to rebar_utils:sh.
2011-01-06 15:02:19 +01:00
Tuncer Ayaz
f7eb0a7158 Add Charles McKnight to THANKS file 2011-01-06 12:30:58 +01:00
Charles McKnight
f83f18eb3b Fix error where ebin was created as a file
This patch remedies an issue where the ebin directory would be
erroneously created as a file by the first "mv" command in
rebar_protobuffs_compile.erl [line 106] if the ebin file did not
exist at the root application level.

In essence, the patch ensures that the ebin directory exists at
the application directory level before any "mv" commands are
executed. The following code was inserted at line 106:

    ok = filelib:ensure_dir(filename:join("ebin","dummy")),
2011-01-06 12:30:32 +01:00
Tuncer Ayaz
9c0d51bc0b Fix order of erl_opts to be more accurate 2011-01-04 11:27:17 +01:00
Joseph Wayne Norton
a529577b74 Remove erlc target after fail_on_warning failure
Prevent overlooking a compilation warning by removing the target beam
file after fail_on_warning failure.
2010-12-27 13:29:53 +01:00
Anthony Ramine
008dcb8542 Add abnfc support
abnfc is an ABNF parser generator.
Options are:
	- doc_root (defaults to "src")
	- out_dir (defaults to "src")
	- source_ext (defaults to ".abnf")
	- module_ext (defaults to "")
2010-12-22 17:57:21 +01:00
David Reid
63d5ceb61d Support single level of nested template variables
Add support for defining template variables of the following form:

{variables, [{appid, "mochiwebapp"},
         {author, "Mochi Media <dev@mochimedia.com>"},
         {year, "2010"},
         {version, "0.1"},
         {port, 8080},
         {dest, "{{appid}}"}]}.

Where dest may be overridden on the commandline but will default to
being the appid. Mochiweb uses this so that we can create new
projects from the template in a configurable directory.

So

$ rebar create template=mochiwebapp dest=foo appid=bar

I thought about special casing dest but figured it might be generally
useful to be able to nest template vars.

However this patch only does one level of resolution. So if

{variables, [{foo, "{{bar}}"},
                {bar, "{{foo}}"}]}.

then bar will end up being the literal string {{bar}} and foo the
literal string {{foo}}.
2010-12-22 17:56:52 +01:00
Dave Smith
9b0d35d986 Adding support for app_vars in external file 2010-12-20 08:55:31 -07:00
Tuncer Ayaz
d8e50e8c2d Implement update-deps and disable auto update 2010-12-17 12:39:50 +01:00
Tuncer Ayaz
57e593a319 Fix possible export VAR=VALUE bashism 2010-12-17 12:39:31 +01:00
Tuncer Ayaz
ec6a5fb587 Add Anthony Ramine to THANKS file 2010-12-16 16:14:54 +01:00
Anthony Ramine
9ecc3455bf Fix typo in rebar_erlydtl_compiler 2010-12-16 15:40:15 +01:00
Tuncer Ayaz
6304c19180 Revert to using awk instead of cut 2010-12-13 13:07:33 +01:00
Tuncer Ayaz
90c5da8033 Extract column 2 on CYGWIN 2010-12-10 17:17:46 +01:00