#!/usr/bin/env perl use Hubot::Robot; use Cwd 'cwd'; use File::Slurp qw/read_file/; use JSON::XS; use Getopt::Long::Descriptive; my ($opt, $usage) = describe_options( "hubot %o ", [ 'adapter|a=s', 'The Adapter to use', { default => 'shell' } ], [ 'name|n=s', 'The name of the robot in chat', { default => 'hubot' } ], [ 'scripts|s=s', 'hubot-scripts.json file path' ], [ 'help', 'Display the help information' ], ); print($usage->text), exit if $opt->help; my $robot = Hubot::Robot->new({ adapter => $opt->{adapter}, name => $opt->{name}, }); $robot->alias($opt->{alias}) if $opt->{alias}; $robot->adapter->on( 'connected', sub { my $cwd = cwd(); my $scriptsFile = $opt->{scripts} || "$cwd/hubot-scripts.json"; if (-f $scriptsFile) { my $json = read_file($scriptsFile); my $scripts = decode_json($json); $robot->loadHubotScripts($scripts); } } ); $robot->run; =pod =head1 NAME hubot - convenience command line interface L. =head1 SYNOPSIS $ hubot --help $ echo '["help"]' > ./hubot-scripts.json # `hubot-scripts.json` is required. $ hubot hubot> hubot help # hubot: help hubot> exit # irc? $ HUBOT_IRC_ROOMS='#myroom' \ HUBOT_IRC_SERVER='irc.myserver.com' \ HUBOT_IRC_PORT=6667 \ hubot -a irc # campfire? $ HUBOT_CAMPFIRE_TOKEN='xxxx' \ HUBOT_CAMPFIRE_ROOMS='1234' \ HUBOT_CAMPFIRE_ACCOUNT=myaccount \ hubot -a campfire $ perldoc Hubot $ perldoc Hubot::Adapter::Irc $ perldoc Hubot::Adapter::Campfire =head1 DESCRIPTION C is a Command Line Interface for L. =head1 SEE ALSO =over =item L =item L =item L =back =head1 AUTHOR Hyungsuk Hong =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2012 by Hyungsuk Hong. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut