Added core command RESTART.

This commit is contained in:
Elijah Perrault committed 2011-02-04 13:52:41 -07:00
1 parent 7423e4433c
commit e071cd1b8b
3 files changed
+41 -2

No files matched your search

+1
View File
@@ -297,6 +297,7 @@ API::Std::cmd_add("MODLOAD", 1, \%Core::IRC::SHELP_MODLOAD, \%Core::IRC::FHELP_M
API::Std::cmd_add("MODUNLOAD", 1, \%Core::IRC::SHELP_MODUNLOAD, \%Core::IRC::FHELP_MODUNLOAD, \&Core::IRC::cmd_modunload);
API::Std::cmd_add("MODRELOAD", 1, \%Core::IRC::SHELP_MODRELOAD, \%Core::IRC::FHELP_MODRELOAD, \&Core::IRC::cmd_modreload);
API::Std::cmd_add("SHUTDOWN", 2, \%Core::IRC::SHELP_SHUTDOWN, \%Core::IRC::FHELP_SHUTDOWN, \&Core::IRC::cmd_shutdown);
API::Std::cmd_add("RESTART", 2, \%Core::IRC::SHELP_RESTART, \%Core::IRC::FHELP_RESTART, \&Core::IRC::cmd_restart);
# Infinite while loop.
while (1) {
+1
View File
@@ -3,6 +3,7 @@ Auto IRC Bot 3.0: Change Log
3.0 Indev
==================================================================
* Added core command RESTART.
* Added config option server:autorejoin for rejoining on kick.
* Added event on_kick.
* Parse KICK.
+39 -2
View File
@@ -190,9 +190,7 @@ sub cmd_shutdown
dbug "Got SHUTDOWN from ".$data{nick}."!".$data{user}."@".$data{host}."/".$data{svr}."! Shutting down. . .";
alog "Got SHUTDOWN from ".$data{nick}."!".$data{user}."@".$data{host}."/".$data{svr}."! Shutting down. . .";
quit($_, "SHUTDOWN from ".$data{nick}."/".$data{svr}) foreach (keys %Auto::SOCKET);
sleep 1;
DB::flush();
sleep 1;
system("rm $Auto::Bin/auto.pid");
exit;
@@ -200,5 +198,44 @@ sub cmd_shutdown
return 1;
}
# Help hashes for RESTART. Spanish, French and German needed.
our %SHELP_RESTART = (
'en' => 'Restart Auto.',
);
our %FHELP_RESTART = (
'en' => 'This will send out restart notifications, quit all networks, flush the database, start a new Auto process, then exit the program.',
);
# RESTART callback.
sub cmd_restart
{
my (%data) = @_;
# Check for the appropriate privilege.
if (!has_priv(match_user(%data), "cmd.restart")) {
notice($data{svr}, $data{nick}, trans("Permission denied").".");
return 0;
}
# Goodbye world!
notice($data{svr}, $data{nick}, "Restarting.");
dbug "Got RESTART from ".$data{nick}."!".$data{user}."@".$data{host}."/".$data{svr}."! Restarting. . .";
alog "Got RESTART from ".$data{nick}."!".$data{user}."@".$data{host}."/".$data{svr}."! Restarting. . .";
quit($_, "RESTART from ".$data{nick}."/".$data{svr}) foreach (keys %Auto::SOCKET);
DB::flush();
system("rm $Auto::Bin/auto.pid") if -e "$Auto::Bin/auto.pid";
# Time to come back from the dead!
if ($Auto::DEBUG) {
system("$Auto::Bin/auto -d");
}
else {
system("$Auto::Bin/auto");
}
exit;
# To appease PerlCritic.
return 1;
}
1;