summaryrefslogtreecommitdiff
path: root/lib/nola/plugins.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/nola/plugins.ex')
-rw-r--r--lib/nola/plugins.ex38
1 files changed, 37 insertions, 1 deletions
diff --git a/lib/nola/plugins.ex b/lib/nola/plugins.ex
index b0c3ce3..7872cd6 100644
--- a/lib/nola/plugins.ex
+++ b/lib/nola/plugins.ex
@@ -1,6 +1,38 @@
defmodule Nola.Plugins do
require Logger
+ @builtins [
+ Nola.Plugins.Account,
+ Nola.Plugins.Alcoolog,
+ Nola.Plugins.AlcoologAnnouncer,
+ Nola.Plugins.Base,
+ Nola.Plugins.Boursorama,
+ Nola.Plugins.Buffer,
+ Nola.Plugins.Calc,
+ Nola.Plugins.Coronavirus,
+ Nola.Plugins.Correction,
+ Nola.Plugins.Dice,
+ Nola.Plugins.Finance,
+ Nola.Plugins.Gpt,
+ Nola.Plugins.KickRoulette,
+ Nola.Plugins.LastFm,
+ Nola.Plugins.Link,
+ Nola.PLugins.Logger,
+ Nola.Plugins.Preums,
+ Nola.Plugins.QuatreCentVingt,
+ Nola.Plugins.RadioFrance,
+ Nola.Plugins.Say,
+ Nola.Plugins.Script,
+ Nola.Plugins.Seen,
+ Nola.Plugins.Sms,
+ Nola.Plugins.Tell,
+ Nola.Plugins.Txt,
+ Nola.Plugins.Untappd,
+ Nola.Plugins.UserMention,
+ Nola.Plugins.WolframAlpha,
+ Nola.Plugins.YouTube,
+ ]
+
defmodule Supervisor do
use DynamicSupervisor
require Logger
@@ -11,7 +43,7 @@ defmodule Nola.Plugins do
def start_child(module, opts \\ []) do
Logger.info("Starting #{module}")
- spec = %{id: {__MODULE__,module}, start: {__MODULE__, :start_link, [module, opts]}, name: module, restart: :transient}
+ spec = %{id: {Nola.Plugins,module}, start: {Nola.Plugins, :start_link, [module, opts]}, name: module, restart: :transient}
case DynamicSupervisor.start_child(__MODULE__, spec) do
{:ok, _} = res -> res
:ignore ->
@@ -58,6 +90,10 @@ defmodule Nola.Plugins do
end
end
+ def declare_all_builtins do
+ for b <- @builtins, do: declare(b)
+ end
+
def start(module, opts \\ []) do
__MODULE__.Supervisor.start_child(module)
end