mirror of
https://github.com/tbamud/tbamud.git
synced 2026-02-08 08:54:21 +01:00
Setting up 3.5.0 as trunk
This commit is contained in:
parent
0ddbd8b56e
commit
99e3aa4d8b
1336 changed files with 514917 additions and 0 deletions
136
macrun.pl
Normal file
136
macrun.pl
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
#!perl
|
||||
|
||||
##############################################################################
|
||||
# Portions of this script are Copyright 1998 by dean takemori.
|
||||
#
|
||||
# This is a MacPerl script which attempts to impliment autorun functionality
|
||||
# for MacOS. It's a bit of a bastardisation of MacPerl and "standard" unix
|
||||
# style perl. I won't claim that it's pretty. Parts of it come from the
|
||||
# Autorun perl script for unix that is distributed with CircleMUD and it is
|
||||
# therefore subject to the following.
|
||||
|
||||
# Copyright (c)1995 Vi'Rage Studios
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
# csh original by Fred C. Merkel, PERL conversion by D. Hall
|
||||
|
||||
# .fastboot sleep for only 5 seconds, instead of the default 20
|
||||
# .killscript script will exit, and mud will not reboot
|
||||
# .pause pause (sleep 1 minute intervals) until .pause it removed
|
||||
##############################################################################
|
||||
|
||||
use 5.004;
|
||||
use Mac::MoreFiles;
|
||||
use Mac::Processes;
|
||||
|
||||
# launchContinue() must be set or MacPerl will quit after LaunchApplication().
|
||||
# The creator code "dtCM" is registered with Apple Computer for CircleMUD.
|
||||
# However, if you have multiple copies of Circle on disk (a production MUD
|
||||
# and a testing MUD for example), you may wish to specify by FULL PATH,
|
||||
# which application to run.
|
||||
|
||||
$spec = $Application{'dtCM'};
|
||||
#$spec = "volume:apps:myapp";
|
||||
|
||||
my($app);
|
||||
$app = new LaunchParam(
|
||||
'launchControlFlags' => launchContinue(),
|
||||
'launchAppSpec' => $spec
|
||||
) or die ($^E);
|
||||
|
||||
my($psn, $spec_found);
|
||||
while (1)
|
||||
{
|
||||
LaunchApplication($app) or die($^E);
|
||||
do
|
||||
{
|
||||
# Now, every 60 seconds, scan the running processes for one whose
|
||||
# AppSpec matches the one we set up earlier.
|
||||
sleep(60);
|
||||
$spec_found = 0;
|
||||
foreach $psn (keys(%Process))
|
||||
{
|
||||
if ( $spec eq $Process{$psn}->processAppSpec() )
|
||||
{
|
||||
$spec_found = 1;
|
||||
break; # out of the foreach
|
||||
}
|
||||
}
|
||||
} while ($spec_found == 1);
|
||||
|
||||
# If we're here, then the App is no longer running.
|
||||
# First we open everything
|
||||
open (SYSLOG, ":syslog") or die($^E);
|
||||
open (DELETE, ">>:log:delete");
|
||||
open (DTRAPS, ">>:log:dtraps");
|
||||
open (DEATHS, ">>:log:deaths");
|
||||
open (REBOOT, ">>:log:reboots");
|
||||
open (LEVELS, ">>:log:levels");
|
||||
open (NORENT, ">>:log:norent");
|
||||
open (USAGE, ">>:log:usage");
|
||||
open (NEWPLR, ">>:log:newplrs");
|
||||
open (SYSERR, ">>:log:errors");
|
||||
open (GODCMD, ">>:log:godcmds");
|
||||
open (BADPWS, ">>:log:badpws");
|
||||
|
||||
# Then we stash everything
|
||||
while (<SYSLOG>)
|
||||
{
|
||||
print DELETE if /self-delete/;
|
||||
print DTRAPS if /death trap/;
|
||||
print DEATHS if /killed/;
|
||||
print REBOOT if /Running/;
|
||||
print LEVELS if /advanced/;
|
||||
print NORENT if /equipment lost/;
|
||||
print USAGE if /usage/;
|
||||
print NEWPLR if /new player/;
|
||||
print SYSERR if /SYSERR/;
|
||||
print GODCMD if /\(GC\)/;
|
||||
print BADPWs if /Bad PW/;
|
||||
}
|
||||
close (SYSLOG);
|
||||
|
||||
# Rotate SYSLOG files
|
||||
if (-e ":log:syslog.6") { unlink (":log:syslog.6"); }
|
||||
if (-e ":log:syslog.6") { rename (":log:syslog.5", ":log:syslog.6"); }
|
||||
if (-e ":log:syslog.6") { rename (":log:syslog.4", ":log:syslog.5"); }
|
||||
if (-e ":log:syslog.6") { rename (":log:syslog.3", ":log:syslog.4"); }
|
||||
if (-e ":log:syslog.6") { rename (":log:syslog.2", ":log:syslog.3"); }
|
||||
if (-e ":log:syslog.6") { rename (":log:syslog.1", ":log:syslog.2"); }
|
||||
rename (":syslog" , ":log:syslog.1");
|
||||
|
||||
# should we stay dead?
|
||||
if (-r ".killscript")
|
||||
{
|
||||
unlink(".killscript");
|
||||
open (SYSLOG, ">>:log:syslog.1");
|
||||
print (SYSLOG "autoscript killed ", localtime()); #seconds since epoch
|
||||
exit;
|
||||
}
|
||||
|
||||
# or just play dead?
|
||||
while (-r ".pause")
|
||||
{ sleep(60); }
|
||||
|
||||
# or reboot as soon as possible?
|
||||
if (-r ".fastboot")
|
||||
{
|
||||
unlink(".fastboot");
|
||||
sleep(5);
|
||||
}
|
||||
else
|
||||
{ sleep(20); }
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue