Age | Commit message (Collapse) | Author |
|
Support wildcards for copy/link to a directory.
|
|
|
|
allow specify additional providers via api and cli calls
|
|
The PR https://github.com/erlware/relx/pull/655 changed the behaviour,
while the tests were not fixed. This commit fixes the unit tests.
|
|
|
|
|
|
When symlink_or_copy/2 cannot use file:make_symlink/2 on Windows due to the
user lacking SeCreateSymbolicLinkPrivilege it tries a fall back.
Detect the source type and use an appropriate fall back:
* junction for directories and,
* copy for files.
Improve error detection in win32_make_junction/2 and make it repeatable when
the target exists
|
|
The bulk of the code is hidden behind opposite checks:
* os:type() /= {win32, _} in symlink_or_copy/2
* os:type() == {win32, _} in cp_r/2
symlink_or_copy/2 is always using win32_symlink/2 when file:make_symlink/2 fails.
|
|
* remove deprecated hex field from .app.src
* start nodetool dist node in erl flags
|
|
* include vm.args.src in tarball if it exists
* only check sys.config.src in tar on otp-21+
|
|
|
|
When no release specified in cli, prevent overwriting default_release
in relx config.
|
|
|
|
|
|
Additionally, provides parsing for in-config goals,
and better goal merging.
Closes #571.
This reverts commit 0ffe8cd1a2a4e039a48d1096fc250b3f6bd3dcd1.
|
|
|
|
|
|
`from' directory should be excluded from the mask to avoid accidental expansion.
|
|
Additionally, removes a lot of unnecessary conversions to binary in
relx_prv_overlay (binary and string in Erlang are two different beasts
for filenames), and factors out some common code.
|
|
|
|
* support for OTP21's sys.config.src file in releases
* always replace os vars in .src files if found
* support vm_args_src to be consistent with sys_config_src
* add newlines after warning logs
* improve sys and vm src config tests
|
|
|
|
Had a problem in OTP-21 (master) where escript calls in nodetool would
fail since the file is not around and is being used by default there.
The patch works by copying its equivalent file, which I belive to be
just the start_clean file (their .rel.src are identical), into the same
directories as we do for start_clean.
Internal errors are renamed to be made neutral.
|
|
Use either optional compilation or version-safe variants of the string
functions. Prevents warnings when the switch to OTP-21 will happen.
|
|
Pass prefix through
|
|
Useful for copying custom files from an erts build
such as a .kerl.config file.
|
|
* Extended start script command extensions
Provide a mechanism that allows for the application
to extend the list of commands available to be invoked
from the start script. An application may be able to
define a 'foo' extension that is associated with a 'foo_script'
written and maintained by the applicationr, (this association is
kept in rebar.config), upon invocation of bin/<release_name> foo
the 'foo_script' will then be invoked.
* Add test coverage for extension script
* Ensure extended script usage argument
|
|
|
|
win32 cross release on unix and vs
|
|
|
|
Let people define their own when they want to.
|
|
|
|
Provide a status command to start script which,
by default, runs a builtin hook that simply prints
which applications are running in the node.
This hook can then be customized to print whatever
the user wants by adding
{status, [{custom, "path/to/hook"}]}
to already existing extended_start_script_hooks.
|
|
Only ensure kernel,stdlib for empty dep apps
|
|
Two types are supported, direct chmoding, like
{chmod, 8#00700, "path/to/file/maybe/with/{{templates}}" }
or templating the permission where you have a template var like
{file_perm, 8#00700}
and an overlay
{chmod, "{{file_perm}}","path/to/file/maybe/with/{{templates}}" }
|
|
Do not try and ensure them for every app, there
are some OTP apps that only require kernel and
there's really no point in rewriting those.
|
|
Make this dependency explicit as it was causing
apps with empty application lists to not be included
in the generated release.
|
|
Starting from OTP20 this will trigger a warning, since we
use the warnings_as_errors the build would fail when using
this OTP release onwards.
|
|
Feature/fix crash on relup warning
|
|
Make use of warnings_on_errors option to exit
with error or proceed with just a warning.
|
|
When comparing .app files to check if a rewrite is
necessary do so by comparing erlang terms instead
of bytes, the original .app might contain comments
for example and cause unnecessary rewrites.
This proves a problem when dealing with erts .app
files that might be read-only at the origin and
thus cause a failed release on relx that is
uncalled for since there might have been no changes
at all.
|
|
Obtained from command line and saved in the state
to be used on situations where we want to error out on
warnings explicitly.
|
|
builders other then rebar(Erlang.mk)
|
|
Provide a new config directive that allows per-app module exclusion
|
|
By introducing a new entry in the config file allow excluding
specific modules from a given app, they will not be copied
onto the final release and their reference removed from
the .app file. The new entry takes on the following form:
{exclude_modules, [
{App :: atom(), [Module :: atom()]}
]}
|
|
New 'extended_start_script_hooks' directive that allows the
developer to define six different hook shell scripts to be invoked
at pre/post start/stop/install upgrade phases.
Besides these custom defined scripts, other types of builtin
scripts are also available, these offer pre-packaged functionality
that can be used directly, they are:
pid - writes the beam pid to a configurable file location
(/var/run/<rel_name>.pid by default).
wait_for_vm_start - waits for the vm to start (ie. when it responds to pings)
wait_for_process - waits for a configurable name
to appear in the erlang process registry
The hook scripts are invoked with the 'source' command, therefore
they have access to all the variables in the start script.
|
|
The first run would correctly replace the environment
variables, however it would also overwrite the original
vm.args and sys.config thus preventing any further
substitution in subsequent runs.
Dev mode runs were also broken, all runs after the
first were required to also define the
RELX_REPLACE_OS_VARS variable in order not to
overwrite the current vm.args with the original one,
this prevented simply attaching to an already running
node that was started this way.
Add tests to exercise this functionality.
|
|
This reverts commit 701da7b9f2dfb872351b56938f7aed5bff0d79c7.
|
|
lrascao/feature/include_nodetool_on_extended_start_script
Always include nodetool when generating extended start script
|
|
Remove redundant check for extended_start_script.
Add tests that enforce this invariant.
|