aboutsummaryrefslogtreecommitdiffstats
path: root/priv/templates/extended_bin
AgeCommit message (Collapse)Author
2018-06-15Start script (#635)Michael Santos
* templates/bin: replace process with erlexec Similar to templates/extended_bin, use "exec" to avoid leaving an extra shell process running. * template/{bin,extended_bin}: set program name Set the program name to the script name in process lists using the same method as escripts. The program name can be overriden by setting the ESCRIPT_NAME environment variable: # before msantos 10428 9554 49 10:33 pts/25 00:00:01 /usr/local/lib/erlang/erts-9.2/bin/beam.smp -Bd -- ... # after msantos 10054 9554 32 10:33 pts/25 00:00:01 /home/msantos/src/erlang/appname/_build/default/rel/appname/bin/appname -Bd -- ... # ESCRIPT_NAME="foo" msantos 11254 9554 32 10:35 pts/25 00:00:01 foo -Bd -- ...
2018-06-12support for OTP21's sys.config.src file in releases (#647)Tristan Sloughter
* 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
2018-06-02add -heart to args not to be copied to nodetool (#653)Jan Uhlig
2018-04-01Reorder replace_os_vars and node NAME assignmentAlexander Petrovsky
2018-04-01Fix backup file creation by sedAlexander Petrovsky
2018-03-22Extend adding extra args from vm.args to install_upgrade.escriptkonyaris
2018-02-15Add extra args from vm.args into escripts and erlAlexander Petrovsky
2018-01-02Clarify that extension scripts shall exitLuca Favatella
2017-11-21Revert "Only print lines for os var that are set"Tristan Sloughter
2017-11-01Support OTP-20 Unicode functionsFred Hebert
Use either optional compilation or version-safe variants of the string functions. Prevents warnings when the switch to OTP-21 will happen.
2017-10-30Fix printf statement. Backslash is not necessary and dash is picky about itLuke Bakken
2017-10-30Add test that demonstrates that fixes preserve an argument that contains ↵Luke Bakken
both double quotes and a space character
2017-10-25Correctly construct HEART_COMMAND and run_erl argumentsLuke Bakken
The runner script that ships with rebar builds HEART_COMMAND and run_erl arguments that preserve additional arguments the user may have passed: https://github.com/rebar/rebar/blob/master/priv/templates/simplenode.runner#L215-L238 This PR preserves this behavior. In additon, the current code on this line sets $@ but does not do anything with the result: https://github.com/erlware/relx/blob/master/priv/templates/extended_bin#L481-L482 Investigated in response to this ML thread: http://erlang.org/pipermail/erlang-questions/2017-October/093974.html
2017-10-19Only print lines for os var that are setAnthony Jackson
2017-10-19Merge pull request #616 from koctep/add_boot_var_ERTS_LIB_DIRLuis Rascão
Add boot_var ERTS_LIB_DIR to relx_get_nodename
2017-10-18Start script extensions (#613)Luis Rascão
* 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
2017-10-19Add boot_var ERTS_LIB_DIR to relx_get_nodenameIlya Ashchepkov
2017-10-17Merge pull request #610 from juhlig/patch-1Luis Rascão
vm.args check for name/sname parameter
2017-10-17more sophisticated args_file checksJan Uhlig
- distinction between non-existing and existing but non-readable args_file - fixed circularity check to include the base vm.args file
2017-10-16Augmented vm.args checksJan Uhlig
vm.args and referenced args_files will now be checked for: - non-existing -args_files - circular dependencies between -args_files - relative paths in -args_files - multiple/mixed occurences of -name and -sname parameters - missing -name or -sname parameters
2017-10-11disabling progress reports during erl root check in extended start scriptConstantine Povietkin
2017-10-06fixed indentationJan Uhlig
2017-10-06fix for OSX awkJan Uhlig
usage of \s in awk regexp is a gawk extension. OSX comes with a different variant of awk. This fix should make the awk code POSIX-compliant and should work in all variants of awk (tested with gawk --traditional)
2017-10-05vm.args check for name/sname parameterJan Uhlig
The current version of extended_bin checks if there is a name or sname parameter in vm.args and refuses to start if there is none. However, it is allowed that the vm.args file (more abstract, any -args_file that is given to erl/erlexec etc) itself may contain -args_file parameters (see http://erlang.org/doc/man/erl.html), which may contain the name/sname parameters. This change will recursively scan the files mentioned in -args_file parameters in vm.args as well as -args_file parameters in the mentioned files etcetc, and return the first occurence of a name/sname parameter. Two points are worth mentioning, though: - The name/sname check works only with absolute paths in the args_file parameters. Relative paths are probably a bad idea there, anyway, since it would make any setup rather fragile. - There is no check for circular dependencies. There was none before, and this change does not add any.
2017-09-19PIPE_DIR handlingJan Uhlig
As mentioned in the (closed) issue #127, the default pipe directory is not multi-user friendly. When running multiple relx-generated releases as different users, the first to be started will create the /tmp/erl_pipes directory, which the ones starting after that cannot create their pipe dirs in. The ticket mentions that this should be fixed by #154, but I cannot see how this is supposed to solve the issue. Right now, the only way I see is to use prefix the start command with env PIPE_DIR=/some/other/dir/, which is quite cumbersome. This change will work exactly as before when PIPE_DIR is explicitly set. In case PIPE_DIR is not set, however, it will first attempt to create the parent dir /tmp/erl_pipes with mode 1777, which should enable releases being run as other users to create their pipe dirs.
2017-09-11Prevent .erlang from prepending string to the erl root dirbitnitdit
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.
2017-07-20Don't fail status script command if emptyLuis Rascao
2017-05-15Add custom status hook to extended scriptLuis Rascao
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.
2017-05-15Ensure mustache does not html escape hook invocationsLuis Rascao
2017-03-14Merge pull request #579 from lrascao/fix/osx_readlinkTristan Sloughter
Fix OSX readlink
2017-03-12Fix OSX readlinkLuis Rascao
It does not support the -f option.
2017-03-11Only use multi-node sys.config if requested when replacing OS varsLuis Rascao
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.
2016-12-18Obtain release node name from Erlang VM instead of OSLuis Rascao
2016-11-12Add support for new relx directive that provides start/stop shell script hooksLuis Rascao
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.
2016-11-11Refactor foreground commandLuis Rascao
Move it next to console since it's mostly the same thing but with extra parameters.
2016-11-09Remove name collisions of replaced files in multi-node setupsSerge Aleynikov
2016-10-30Allow optionally setting a release as permanent after relupLuis Rascao
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.
2016-10-30Provide per-command command line helpLuis Rascao
2016-10-31add versions in command helpsoranoba
2016-10-31Support the uninstall command. (release_handler:remove_release/1)soranoba
2016-10-29Allow for a more flexible relup package locationLuis Rascao
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.
2016-10-28Fix upgrade/downgrade/install usageLuis Rascao
The second argument is actually the version and not the package name.
2016-10-27tch to fix #523Deepak Goel
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
2016-10-27ensure an appropriate TERM var is setBen Murphy
useful if deploying erlang nodes via capistrano when TERM is not set correctly attaching to the node will result in weirdness
2016-10-27disable ctrl-s block node featureBen Murphy
(see: http://erlang.org/pipermail/erlang-patches/2010-March/000883.html)
2016-10-27Give code path access to console_cleanLuis Rascao
To allow manually loading and starting up applications.
2016-10-27Fix replace os vars functionalityLuis Rascao
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.
2016-06-17Remove a non-POSIX command.soranoba
2016-06-16If cookie is not exist in vm.args, it use the cookie in ~/.erlang.cookiesoranoba
2016-04-26Fix: does not contain the part of the commandsoranoba