Badlop
bd0332c716
ext_mod: Fix typo in log message
2024-07-16 17:16:33 +02:00
Badlop
936460212f
Fix bug in 8a3344e
when Elixir enabled but no need to compile elixir files
2024-07-15 10:59:14 +02:00
Badlop
101cce0c1e
ext_mod: Fetch dependencies from hex.pm when mix is available
...
This doesn't work when running an OTP release build using mix,
which means it doesn't work in binary installers or containers;
only when using relive, or compiled with rebar3.
Set the desired hex package version in the module's rebar.config
For example, to fetch hex package recon 2.5.5 when mix is available,
and otherwise download using git: in the file
ejabberd-contrib/ejabberd_observer_cli/rebar.config
set both the hex version and git details:
{deps, [
{recon, "2.5.5", {git, "https://github.com/ferd/recon "}}
]}.
2024-07-12 15:47:10 +02:00
Badlop
df5291e4bd
ext_mod: Improve error result when problem compiling elixir file
2024-07-11 16:35:24 +02:00
Badlop
28e37bcaad
ext_mod: files_to_path is deprecated, use compile_to_path
...
As recommended in
d9cf285d71/lib/elixir/lib/kernel/parallel_compiler.ex (L240)
2024-07-11 16:35:21 +02:00
Badlop
8a3344e78a
ext_mod: Compile all Elixir files in a library with one function call
...
Some Elixir libraries have files with dependencies between them.
Compiler can detect and solve those internal dependency if
we call Compile with a list of all the files
https://hexdocs.pm/elixir/1.17.2/Kernel.ParallelCompiler.html#compile/2
This is useful to compile libcluster
2024-07-11 16:35:18 +02:00
Badlop
543b874a10
ext_mod: Handle case when contrib module has no *.ex and no *.erl
2024-07-02 13:43:37 +02:00
Badlop
f3ad49ebc4
Fix copy deps *.app file, and strip *.src if present
2024-06-27 14:54:36 +02:00
Badlop
394ba26d1d
ext_mod: Support to compile nested *.erl, and include other deps *.hrl
...
This is useful to compile as a dependency
https://github.com/deadtrickster/prometheus.erl
2024-06-27 14:54:35 +02:00
Badlop
5a34020d23
WebAdmin: Move content to commands; new pages; hook changes; new commands
...
Also:
- Added support to view user subpages in the menu
- Webadmin hooks now get the full request
- New commands added to be used in webadmin pages
2024-06-19 17:59:38 +02:00
Badlop
696e42b5b4
Use json module when Erlang/OTP 27, jiffy with older ones
2024-05-07 11:28:17 +02:00
Badlop
0ad1d315e8
Use maps instead of tuple+list+tuple as arguments in jiffy functions
2024-05-07 11:28:16 +02:00
Badlop
2979fb4a9b
ext_mod: Support in WebAdmin when a module spec lacks some information
2024-02-06 17:52:29 +01:00
Badlop
589521bfd8
Update copyright year to 2024 ( #4139 )
2024-01-22 17:29:13 +01:00
Badlop
b08001183e
ext_mod: Support Elixir modules with several defimpl, like Decimal
2024-01-17 10:24:34 +01:00
Badlop
0121adec03
ext_mod: Compile *.ex files also in source subfolders
2024-01-17 10:24:34 +01:00
Badlop
9534ca2da1
ext_mod: Support when git repository name is not identical to the module name
...
For example, ejabberd-contrib has an extra module, mod_prometheus,
that is hosted in a git repository named ejabberd-prometheus-exporter
2023-10-04 20:57:02 +02:00
Badlop
f9d11265d0
ext_mod: Don't crash when github page response is 403
2023-10-04 20:55:01 +02:00
Badlop
d85c125bef
ext_mod: Use the same URL that ejabberd-contrib spec files
2023-10-04 20:54:49 +02:00
Badlop
78f81de252
Improve support to stop external modules written in Elixir
2023-07-13 13:41:18 +02:00
Badlop
c333cc0776
New option install_contrib_modules
...
This option is read during ejabberd start or config reload.
It installs the listed modules which aren't yet installed,
as long as allow_contrib_modules is not disabled.
Edit ejabberd.yml and configure the desired ejabberd-contrib modules,
add them in the install_contrib_modules option,
finally start ejabberd (or reload config).
2023-06-09 10:27:13 +02:00
Badlop
436074c67a
When installing module already configured, keep config as example
...
When installing a module using ext_mod, if it has already configuration
in the modules section, copy its specific config file as an example
(copy file and rename it).
This may happen when using the new install_contrib_modules option.
2023-06-09 00:02:02 +02:00
Badlop
c5c7e7fc4d
ext_mod: Improve support for loading *.so files from ext_mod dependencies
...
Copying files from deps/*/priv/*.so to the ejabberd priv/
is not possible when running ejabberd as OTP release or in a container.
Instead, let's copy the deps/*/priv/*.so maintaining the file structure,
and then using code:add_pathz for those dirs.
This partially reverts 5c1b72853f
2023-01-25 17:58:12 +01:00
Badlop
243697e25a
Update copyright year to 2023 ( #3967 )
2023-01-10 13:52:04 +01:00
Badlop
5c1b72853f
External modules: compile C files and install them in ejabberd's priv
2023-01-03 18:48:44 +01:00
Badlop
4ad4a3bf24
Support to get module status from Elixir modules
2022-12-22 14:00:38 +01:00
Badlop
d29fdc4d2e
Remove unnecessary text string
2022-10-12 12:06:28 +02:00
Badlop
7d8fa3c880
ext_mod: Support managing remote nodes in the cluster
2022-08-05 16:15:05 +02:00
Badlop
72944d895b
ext_mod: Handle correctly when COMMIT.json not found
2022-08-05 16:15:03 +02:00
Badlop
bc8050eb03
Don't bother with COMMIT.json user-friendly feature in automated user case
2022-07-27 15:16:51 +02:00
Badlop
a38ed7fb2c
Handle not found COMMIT.json, for example in GH Actions
2022-07-27 15:16:49 +02:00
Badlop
033656d70e
Add WebAdmin page for managing external modules
2022-07-26 15:42:13 +02:00
Badlop
b3211b1f71
Update copyright year to 2022
2022-02-11 09:39:25 +01:00
Badlop
ab5e726176
Use the most specific tag for ejabberd commands with several ones
2021-07-30 01:14:36 +02:00
Badlop
bb0c6e1e02
Show messages with next configuration steps when installing a module
2021-07-06 13:37:04 +02:00
Badlop
4495f0f0b9
For OTP<22 define LAGER macro in ext_mod like in rebar.config ( #3493 )
2021-02-16 13:09:21 +01:00
Badlop
6e0161470e
Update newest copyright year to 2021 ( #3464 )
2021-01-27 17:02:06 +01:00
Paweł Chmielowski
9be3d948b2
Make ext_mod compile module with debug_info flags
...
This should fix issue #3472
2021-01-07 15:10:39 +01:00
Paweł Chmielowski
ec61c2f3dc
Change split character in PROXY_USER from \x04 to :
...
This is clearly typo
2020-10-29 16:36:18 +01:00
Paweł Chmielowski
151b818af4
Use compilation flags used during build to compile modules in ext_mod
...
This fixes issue #3178
2020-03-03 11:25:17 +01:00
Badlop
2d32c66fd7
Update copyright to 2020 ( #3149 )
2020-01-28 15:49:23 +01:00
Evgeny Khramtsov
94b74c0cbe
Fix loading of third-party modules at startup
...
Fixes #3019
2019-11-07 10:47:11 +03:00
Evgeny Khramtsov
5770946f03
Correctly handle unicode in log messages
2019-09-23 15:17:20 +03:00
Evgeny Khramtsov
6f5d99275b
Process unexpected messages uniformly
2019-07-12 11:55:36 +03:00
Evgeny Khramtsov
a02cff0e78
Use new configuration validator
2019-06-14 12:33:26 +03:00
Badlop
4e591a73c5
Add ext_mod paths before checking config ( processone/ejabberd-contrib#263 )
2019-04-03 13:10:11 +02:00
Badlop
55417dfb37
Update copyright to 2019 ( #2756 )
2019-01-08 22:53:27 +01:00
Evgeny Khramtsov
2d246f61dd
Fix some dialyzer warnings
2018-09-09 09:59:08 +03:00
Rogério da Silva Yokomizo
4a4cc32650
Export ext_mod:add_sources/1
2018-05-22 16:16:13 +02:00
Paweł Chmielowski
5b730cdbf2
Use httpc directly instead of using p1_http wrapper
2018-04-23 17:40:44 +02:00