diff options
| author | tv <tv@xso> | 2011-09-06 02:49:26 +0200 | 
|---|---|---|
| committer | tv <tv@xso> | 2011-09-06 02:49:26 +0200 | 
| commit | a5790c48a3ecb1d109770caead316013197562d3 (patch) | |
| tree | 02096c7223e81b7c9f128fbbb15eda4ede83e82a /cholerab/IRC-RPC | |
| parent | 7c2ebca3fb83ea190743b61946dff0678c975f48 (diff) | |
Krebs IRC RPC: initial commit
Diffstat (limited to 'cholerab/IRC-RPC')
| -rw-r--r-- | cholerab/IRC-RPC | 32 | 
1 files changed, 32 insertions, 0 deletions
| diff --git a/cholerab/IRC-RPC b/cholerab/IRC-RPC new file mode 100644 index 00000000..a5350534 --- /dev/null +++ b/cholerab/IRC-RPC @@ -0,0 +1,32 @@ +# Krebs IRC RPC + +    on :<from> PRIVMSG <target> :<handle>: <command> <argument> +     +      if <handle> ∈ { nickname, "ALL" } +        if <command> is a public command +     +          path = $__public_command_directory/<command> +          argv = [] +          envp = { from: <from>, argument: <argument> } +     +          <code> = execve(path, argv, envp) → <stdout>, <stderr> +     +          if <code> = 0 +            if <target> is channel +              PRIVMSG <target> :<from>: <stdout> +              PRIVMSG <from> :<stderr> +            else +              ; TODO assert <target> = <from> +              PRIVMSG <from> :<stdout> +              PRIVMSG <from> :Error: <stderr> +          else + +            send all <.*> to the Ministerium +     +            if <target> is channel +              PRIVMSG <target> :<from>: <command> is broken ATM +            else +              PRIVMSG <target> :Error: <command> is broken ATM +     +        else +          PRIVMSG <target> :<from>: you are made of stupid | 
