public
Description: erlang irc bot
Homepage: http://github/pizza/abbot
Clone URL: git://github.com/pizza/abbot.git
abbot /
name age message
file README Wed Sep 02 09:35:30 -0700 2009 document hot-plugin-reloading, which i had to r... [pizza]
directory src/ Mon Sep 14 19:49:28 -0700 2009 Merge branch 'master' of git@github.com:pizza/a... [pizza]
README
%           _     _           _   
%     /\   | |   | |         | |  
%    /  \  | |__ | |__   ___ | |_ 
%   / /\ \ | '_ \| '_ \ / _ \| __|
%  / ____ \| |_) | |_) | (_) | |_ 
% /_/    \_\_.__/|_.__/ \___/ \__|
%

abbot() ->
  "goal is simple bot:",
  "correct, clear, concise, limber",
  "learning erlang -- fun()".

get_started() ->
  install_erlang(),
  "git clone git://github.com/pizza/abbot.git ~/abbot",
  "cd ~/abbot/src",
  "modify bot.erl 'master', 'pass' and 'chan' -defines",
  "make",
  "./abbot.sh",
  % in shell type:
  Bot0 = spawn(bot, go, ["irc.dal.net"]).

kill_bot() ->
  Bot0 ! quit.

plugin_hot_reload() ->
  % how to modify plugins and reload them on the fly...
  % NOTE: works for plugins and any code EXCEPT bot.erl
  "modify plugin foo",
  % in shell...
  cd(plugin),   % chdir
  c(foo),       % compile
  foo:test(),   % test, optional
  l(foo).       % replace old with new

plugins_reload() ->
  % NOTE: plugins must be compiled and loaded first;
  % for develop you probably want plugin_hot_reload() instead
  Bot0 ! {reload, plugins}. % reload all plugins