defmodule Nola.IRC.ScriptPlugin do require Logger @moduledoc """ Allows to run outside scripts. Scripts are expected to be long running and receive/send data as JSON over stdin/stdout. """ @ircdoc """ # script Allows to run an outside script. * **+script `` `[command]`** dĂ©fini/lance un script * **-script ``** arrĂȘte un script * **-script del ``** supprime un script """ def irc_doc, do: @ircdoc def start_link() do GenServer.start_link(__MODULE__, [], name: __MODULE__) end def init([]) do {:ok, _} = Registry.register(IRC.PubSub, "trigger:script", [plugin: __MODULE__]) dets_filename = (Nola.data_path() <> "/" <> "scripts.dets") |> String.to_charlist {:ok, dets} = :dets.open_file(dets_filename, []) {:ok, %{dets: dets}} end def handle_info({:irc, :trigger, "script", m = %{trigger: %{type: :plus, args: [name | args]}}}, state) do end def handle_info({:irc, :trigger, "script", m = %{trigger: %{type: :minus, args: args}}}, state) do case args do ["del", name] -> :ok #prout [name] -> :ok#stop end end end