Major updates

master
root 2019-08-12 04:35:54 +00:00
parent 7d0b86e026
commit 9476e7f364
1 changed files with 41 additions and 24 deletions

65
mmc
View File

@ -11,6 +11,7 @@ use Number::Bytes::Human qw(format_bytes parse_bytes);
my $FileEditor = "/bin/nano"; my $FileEditor = "/bin/nano";
my $InitDName = "/etc/init.d/minetest"; my $InitDName = "/etc/init.d/minetest";
my $MINETESTDIR = "/root/minetest"; my $MINETESTDIR = "/root/minetest";
my $MINEHOME = "/root";
my $BackupCommand = "/root/MineBackup/minebackup.pl"; my $BackupCommand = "/root/MineBackup/minebackup.pl";
my $PagerCommand = "/usr/bin/less"; my $PagerCommand = "/usr/bin/less";
my $Logfile = "/root/minetest/debug.txt"; my $Logfile = "/root/minetest/debug.txt";
@ -19,6 +20,7 @@ my $MinetestConf = "/root/minetest/minetest.conf";
my $MinetestWorld = "/root/minetest/worlds/world/world.mt"; my $MinetestWorld = "/root/minetest/worlds/world/world.mt";
my $BACKUP_DIR = "/root/backups"; my $BACKUP_DIR = "/root/backups";
my $RestoreCommand = "tar xvzf"; my $RestoreCommand = "tar xvzf";
my $DEBUG_MODE = "off";
################################################### ###################################################
# No changes below here # No changes below here
@ -39,6 +41,21 @@ if ($ENV{'EDITOR'})
$FileEditor = $ENV{'EDITOR'}; $FileEditor = $ENV{'EDITOR'};
} }
my $menuselection = "";
sub PrintDebugCommand
{
if ($DEBUG_MODE eq "off")
{
return;
}
my $PassedString = shift;
print "About to run:\n$PassedString\n";
print "Press Enter To Run This:";
my $entered = <STDIN>;
}
my $d = new UI::Dialog ( backtitle => "Minetest Management Console v$MMC_ver", height => 20, width => 65, listheight => 5, my $d = new UI::Dialog ( backtitle => "Minetest Management Console v$MMC_ver", height => 20, width => 65, listheight => 5,
order => [ 'ascii', 'cdialog', 'xdialog' ]); order => [ 'ascii', 'cdialog', 'xdialog' ]);
@ -112,6 +129,10 @@ if (-f $MySettings)
{ {
$RestoreCommand = $Setting; $RestoreCommand = $Setting;
} }
if ($Command eq "minehome")
{
$MINEHOME = $Setting;
}
} }
close($FH); close($FH);
} }
@ -124,19 +145,17 @@ else
print $FH "minetestdir=$MINETESTDIR\n"; print $FH "minetestdir=$MINETESTDIR\n";
print $FH "backupcommand=$BackupCommand\n"; print $FH "backupcommand=$BackupCommand\n";
print $FH "pagercommand=$PagerCommand\n"; print $FH "pagercommand=$PagerCommand\n";
print $FH "logfile=$LogFile\n"; print $FH "logfile=$Logfile\n";
print $FH "playerdir=$PlayersDir\n"; print $FH "playerdir=$PlayersDir\n";
print $FH "minetestconf=$MINETESTDIR/minetest.conf\n"; print $FH "minetestconf=$MINETESTDIR/minetest.conf\n";
print $FH "minetestworld=$MINETESTDIR/worlds/world/world.mt\n"; print $FH "minetestworld=$MINETESTDIR/worlds/world/world.mt\n";
print $FH "debugmode=$DEBUG_MODE\n"; print $FH "debugmode=$DEBUG_MODE\n";
print $FH "backupdir=$BACKUP_DIR\n"; print $FH "backupdir=$BACKUP_DIR\n";
print $FH "restorecommand=$RestoreCommand\n"; print $FH "restorecommand=$RestoreCommand\n";
print $FH "minehome=$MINEHOME\n";
close($FH); close($FH);
} }
my $menuselection = "";
sub CheckServerStatus sub CheckServerStatus
{ {
my $running=`ps ax|grep minetestserver|grep -v grep`; my $running=`ps ax|grep minetestserver|grep -v grep`;
@ -200,7 +219,7 @@ sub GetWhichBackup
#Ask user which one #Ask user which one
while(-1) while(-1)
{ {
print "Restore which backup? (1-5): "; print "Restore which backup? (1-5) or \"quit\": ";
my $Chosen = <STDIN>; my $Chosen = <STDIN>;
chop ($Chosen); chop ($Chosen);
if ((lc($Chosen) eq "q") || (lc($Chosen) eq "quit") || ($Chosen eq "")) if ((lc($Chosen) eq "q") || (lc($Chosen) eq "quit") || ($Chosen eq ""))
@ -224,8 +243,6 @@ sub DoRestore
if ($WhichBackup eq "") if ($WhichBackup eq "")
{ {
print "No backup selected\n"; print "No backup selected\n";
print "Press Enter To Continue";
my $entered = <STDIN>;
return; return;
} }
print "Using backup $WhichBackup...\n"; print "Using backup $WhichBackup...\n";
@ -234,28 +251,28 @@ sub DoRestore
PrintDebugCommand("touch $MINETESTDIR/nostart"); PrintDebugCommand("touch $MINETESTDIR/nostart");
system("touch $MINETESTDIR/nostart"); system("touch $MINETESTDIR/nostart");
# Kill the server process # Kill the server process
print "Killing SBBS process, please wait..."; print "Killing Minetest process, please wait...\n";
KillBBS(); system("killall /root/minetest/bin/startminetest");
sleep(10); sleep(5);
# Create new folder # Create new folder
print "Creating new folder, please wait..."; print "Creating new folder, please wait...";
PrintDebugCommand("mkdir $MINETESTDIR-new"); PrintDebugCommand("mkdir $MINEHOME-new");
system("mkdir $MINETESTDIR-new"); system("mkdir $MINEHOME-new");
PrintDebugCommand("touch $MINETESTDIR-new/nostart"); PrintDebugCommand("touch $MINEHOME-new/nostart");
system("touch $MINETESTDIR-new/nostart"); system("touch $MINEHOME-new/nostart");
# Swap folders # Swap folders
print "Swapping folders, please wait..."; print "Swapping folders, please wait...";
PrintDebugCommand("mv $MINETESTDIR $MINETESTDIR-keep"); PrintDebugCommand("mv $MINEHOME/minetest $MINEHOME/minetest-keep");
system("mv $MINETESTDIR $MINETESTDIR-keep"); system("mv $MINEHOME/minetest $MINEHOME/minetest-keep");
PrintDebugCommand("mv $MINETESTDIR-new $MINETESTDIR"); PrintDebugCommand("mv $MINEHOME/minetest-new $MINEHOME/minetest");
system("mv $MINETESTDIR-new $MINETESTDIR"); system("mv $MINEHOME-new $MINETESTDIR");
PrintDebugCommand("rm -r $MINETESTDIR-keep"); PrintDebugCommand("rm -r $MINEHOME/minetest-keep");
system("rm -r $MINETESTDIR-keep"); system("rm -r $MINEHOME/minetest-keep");
# Do the restore # Do the restore
chdir ("/"); chdir ($MINEHOME);
PrintDebugCommand("$RESTORE_COMMAND $BACKUP_DIR/syncbackup-$WhichBackup.tgz"); PrintDebugCommand("$RestoreCommand $BACKUP_DIR/minebackup-$WhichBackup.tgz");
system("$RESTORE_COMMAND $BACKUP_DIR/syncbackup-$WhichBackup.tgz"); system("$RestoreCommand $BACKUP_DIR/minebackup-$WhichBackup.tgz");
unlink("$MINETESTDIR/nostart"); unlink("$MINETESTDIR/nostart");
} }
@ -330,7 +347,7 @@ while (-1)
{ {
system("$InitDName stop"); system("$InitDName stop");
sleep(5); sleep(5);
system("killall startminetest"); system("killall /root/minetest/bin/startminetest");
} }
} }
elsif ($menuselection eq "3") elsif ($menuselection eq "3")