Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F77383
script.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Subscribers
None
script.ex
View Options
defmodule
Nola.Plugins.Script
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 `<name>` `[command]`** défini/lance un script
* **-script `<name>`** arrête un script
* **-script del `<name>`** 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
(
Nola.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
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Mon, Jul 7, 7:53 AM (1 d, 15 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
49875
Default Alt Text
script.ex (1 KB)
Attached To
rNOLA Nola
Event Timeline
Log In to Comment