Age | Commit message (Collapse) | Author |
|
Any output string from .erlang to stdout will be prepend to
code:root_dir(), so it will cause the retrieved dir incorrect.
The fix is to start erl with the no_dot_erlang boot file.
|
|
|
|
The syntax for proper path handling when the path may contain
parentheses (such as C:\Program Files (x86)\...) requires quoting the
entire assignment expression:
set "var=%val%"
any other way of doing it may interpret the parentheses and cause
failures.
|
|
be 'install' or 'unpack'
|
|
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.
|
|
|
|
|
|
Fix OSX readlink
|
|
It does not support the -f option.
|
|
When replacing OS vars only create multi-node sys.config
files (ie. filenames containing the node name) only if explicitly
requested. This is necessary because inclusion of other config
files inside of sys.config is only allowed if the file is actually called
sys.config and nothing else.
|
|
|
|
Allow upgrade/downgrade from non-permanent versions
|
|
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.
|
|
Now that you can upgrade to a new version
without setting it as permanent you should also
be able to downgrade from it, this allows downgrading
or upgrading to a version that is already marked as
permanent but is not actually currently running.
|
|
Move it next to console since it's mostly the
same thing but with extra parameters.
|
|
|
|
Support a command line argument to the `upgrade`/`downgrade`
commands: `--no-permanent`, if this is set the release will be unpacked,
installed and be made current but not permanent, when the user
is confortable with the outcomehe can issue the same command a
second time without the `--no-permanent` option.
|
|
|
|
|
|
|
|
|
|
Instead of forcing the user to put the tarball package
with the expected name (<relname>.tar.gz)and in the
expected location (releases/<version>) symlink this
fixed file name to a tarball existing in one of three different
places (releases/, releases/<version>,
releases/<version>/<relname>.tar.gz).
Refactor the install/upgrade escript to make it more
dynamic, it now runs commands that are passed from
the start script while accepting a variable number
of arguments.
Add a `versions` command to the extended start
script that prints out the currently installed versions
and their status.
|
|
The second argument is actually the version and
not the package name.
|
|
Issue 1: If RELX_REPLACE_OS_VARS is true then existing vm.args (sys.config) file
is renamed to vm.arg.orig (sys.config.orig) and a new vm.args (sys.config) is
generated. However, if for some reason new vm.args (sys.config) is not generated
then system ends up without a valid vm.args (sys.config) file and keeps failing
thereafter.
Issue 2: Continuing from issue 1, if the system does not have sufficient
disk space or the current directory is immutable then new vm.args (sys.config)
will not be generated.
This patch tries to fix both the above issues by keeping the existing
vm.args (sys.config) untouched and creates a new vm.args (sys.config)
in /tmp directory
|
|
+Bi disables the erlang break functionality
|
|
useful if deploying erlang nodes via capistrano
when TERM is not set correctly attaching to the
node will result in weirdness
|
|
(see: http://erlang.org/pipermail/erlang-patches/2010-March/000883.html)
|
|
To allow manually loading and starting up
applications.
|
|
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.
|
|
When performing a relup that involves starting a new
application we need to inform release handler that the
code paths need to be updated to account for the new apps.
Otherwise the relup instruction application:start/2 will fail
since it is unable to find the .app file.
|
|
Fix for #478 Boot variable $ERTS_LIB_DIR not supplied in Windows scripts
|
|
Fix erts path discovery on Windows if the path contains spaces.
|
|
As described in http://erlang.org/doc/man/appup.html, when performing a relup
with soft purge:
If the value is soft_purge, release_handler:install_release/1
returns {error,{old_processes,Mod}}
|
|
|
|
|
|
I am submitting this on behalf of @povloid in
https://github.com/erlang/rebar3/issues/1183 who had the following to
say:
the set is not work into `@if` block, in this case the vareables args,
start_erl and description is empty. If we move this strings out of
`@if` block, the script work correctly.
|
|
Add missing -boot_var argument to Windows scripts when starting erlang.
Use different boot variables on Windows vs non-Windows.
The built-in $ROOT boot variable points to the erts directory on Windows
(dictated by erl.ini [erlang] Rootdir=) and so a boot variable $RELEASE_DIR
is made pointing to the release directory
|
|
|
|
|
|
|
|
get nodename from erlang, not hostname
|
|
|
|
|
|
The -X flag is not supported on BusyBox for example.
Using -t x should give the same behavior as -X.
|
|
|
|
|
|
|
|
|
|
Add ability to also run shell commands contained in the sys.config.
E.g.:
# In this example the node name defaults to name of the release
# and can be overriden at run-time, appended with current year
$ head -1 vm.args
-sname ${NODE_NAME:-$REL_NAME}$(date +%Y)
# If the $NAME is 'abc2015', and hostname is 'MyHost', below the 'node'
# parameter gets set to 'Abc2015@myhost'
$ grep node sys.config
{node, $(echo ${NAME^})@${HOSTNAME,,}}
|
|
This patch addresses the following issues:
* When RELX_REPLACE_OS_VARS is set, evaluation of environment vars
is done by the shell rather than awk, this allows to use more
powerful notation of environment variables in sys.config and vm.args
(e.g. `-sname abc@${HOSTNAME,,}` or `{myapp, [{user, ${USER:-unknown}}]}`
* Using shell vars rather than unnecessarily forking awk/grep/etc
|