| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
check top level config for minimum or blacklisted otps at start
|
|/ |
|
|\
| |
| | |
add user-agent to http request headers
|
|/ |
|
|\
| |
| | |
don't lose overrides in an app when installing plugins it uses
|
|/ |
|
|\
| |
| | |
Fix bash completion regression (cf66dfd6ba) and make lopt strings more resilient
|
| |
| |
| |
| |
| |
| |
| | |
To prevent future mistakes like the broken string introduced in
cf66dfd6ba, put opening and closing " on separate lines in each
multi-line lopts string. This also allows for cleaner (smaller) diffs
when removing/adding a flag.
|
| |
| |
| |
| |
| |
| | |
cf66dfd6ba introduced a syntax error in the modified lopts string.
Without the fix, you'll provoke a shell error when trying to complete
`rebar3 ct --<something>`.
|
|\ \
| | |
| | | |
don't strip the project apps when running `ct` with just a root suite specified
|
| | | |
|
|/ /
| |
| |
| | |
this ensures the project apps are compiled to `lib/` instead of `extras/`
|
|\ \
| |/
|/| |
Add module directory to include path
|
|/
|
|
|
|
|
|
|
|
| |
Several projects use an include path relative
to the project's root.
file:compile will look in three places for the include
files:
The current working directory
The directory where the module is being compiled
The directories given by the include option
|
|\
| |
| | |
add profile option to clean task
|
| | |
|
|\ \
| | |
| | | |
deduplicate default test set generated by `rebar3 eunit`
|
| | |
| | |
| | |
| | |
| | | |
this ONLY attempts to deduplicate test sets that are generated by
rebar in the absence of any user specified tests
|
|\ \ \
| | |/
| |/| |
local install and local upgrade
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
| | | |
add unstable install/upgrade instructions to readme
|
|/ / |
|
|\ \
| | |
| | | |
Rework README and CONTRIBUTING documents
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- The README is better targetted to newcomers and explains the basics of
the project: what it is, why use it, how to get started, where to find
more information. It looks less like a reference and more like a brief
overview of rebar3.
- Whatever looks like a list or reference manual material is expected to
be moved to the website
- Be clearer about the rebar3 project structure in CONTRIBUTING.md;
explain how to write tests, how to structure code, and so on.
- Added contributing section on bug reports, feature requests, etc.
|
|\ \ \
| |/ /
|/| | |
Display error message when bad config is loaded
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If a bad configuration file is submitted to rebar3 shell, display the
following error:
===> The configuration file submitted could not be read and will be
ignored.
And keep going otherwise rather than silently failing.
While crash-fast is usually a good mechanism, the shell so far is very
tolerant of failures from apps to boot and whatnot, so this feels
appropriate.
Fixes #1019
|
|\ \
| |/
|/| |
check at runtime instead of compile time for `file:list_dir_all/1`
|
| |
| |
| |
| |
| |
| | |
this is slower than the compile time check but i guess packaging rebars with
repos is still a thing and i think only the eunit and ct providers call it
anyways
|
|\ \
| | |
| | | |
change detection of valid modules for `eunit`
|
| |/
| |
| |
| |
| |
| |
| | |
`beam_lib:chunks(..)` needs a path to object code which, frustratingly,
`code:which/1` won't return for cover compiled modules. instead just
assume that if `code:which/1` doesn't return `non_existing` a module
is something we can run tests on
|
|\ \
| |/
|/| |
convert 'app' to 'application' in eunit_opts to match cmdline args
|
| | |
|
|\ \
| | |
| | | |
when using the `--file' argument to `eunit' paths were being converted
|
|/ /
| |
| |
| | |
into directory test arguments
|
|\ \
| |/
| | |
upgrade bbmustache and relx
|
|/ |
|
|\
| |
| | |
Remove triple brackets in bbmustache templates
|
|/
|
|
|
|
| |
Issues formerly were avoided by quoting atoms. Unquoting them created
unbalanced tags (`{{{name}}`) which were mistakes. This patch inserts
spaces to unconfused bbmustache.
|
|\
| |
| | |
upgrade relx to 3.12.0
|
| | |
|
|\ \
| | |
| | | |
Support old-style shell for rebar3 shell
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reuses the trick used within OTP to pick within old and new shell.
The 'user' structure is the same for all cases (escript, escript + dumb
TERM, unstable install, unstable install + dumb TERM), so we take it
down first.
Then we boot the TTY driver, which fails if TERM=dumb, in which case we
boot the retro-style usr. If it worked, we shut down the driver again,
and boot a modern shell structure.
This avoids all warnings and seems to work in all cases.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is quite the hack.
This requires to detect the current shell running; if it's the new
shell, business as usual.
However, if it's the old shell, we have to find a way to take over it
and drive IO. This requires a few steps because:
- the old shell does not let you be supervised intelligently (it uses
supervisor_bridge, so killing the child is not a supported operation
from the supervisor)
- the old shell ignores all trappable exit signals except those coming
from the Port in charge of stdio ({fd, 0, 1})
- the old shell shuts down on all exit signals from the stdio Port
except for badsig, and replicates the shutdown reason otherwise
- An escript does not tolerate the `user` process dying (old shell) for
any non-normal reason without also taking the whole escript down
- Booting in an escript has an implicit 'noshell' argument interpreted
by the old shell as a way to boot the stdio Port with only stdout
taken care of
Because of all these points, we have to kill the old `user` process by
sending it a message pretending to be the Stdio port dying of reason
`normal`, which lets it die without triggering the ire of its
supervision tree and keeping the escript alive. This, in turn, kills the
old stdio port since its parent (user.erl) has died.
Then we have to boot our copy of user.erl (rebar_user.erl) which
conveniently ignores the possibility of running the stdio port on stdout
only -- always using stdin *and* stdout, giving us a bona fide old-style
shell.
A known issue introduced is that running r3:do(ct) seems to then kill
the shell, and r3:do(dialyzer) appears to have an odd failure, but
otherwise most other commands appear to work fine.
|
|\ \ \
| | |/
| |/| |
merge overlay entries into a single {overlay, list()} for relx
|
| | | |
|
|\ \ \
| | | |
| | | | |
Updates cth_readable so it supports dumb terminals
|
| | |/
| |/|
| | |
| | |
| | | |
cth_readable 1.2.0 uses cf 0.2.1 to output colors, which makes it
support dumb terminals without issue.
|
|\ \ \
| | | |
| | | | |
Unquote templates, add a warning instead.
|
|/ / / |
|