bool SanityCheck()
{
bool blnSane = true;
try
{
string levelsPath = Path.GetFullPath("levels/");
string backupsPath = Path.GetFullPath("levels/backups/");
string logsPath = Path.GetFullPath("logs/");
Logger.Log("Checking if current directory has write access", LogType.Debug);
// Check to see if the current folder has write permission
if (hasWriteAccessToFolder(Directory.GetCurrentDirectory()))
{
Logger.Log("Current directory does have write access", LogType.Debug);
if (Directory.Exists(levelsPath))
{
Logger.Log("Checking if 'levels' directory has write access", LogType.Debug);
// Check to see if the levels folder has write permission
if (hasWriteAccessToFolder(levelsPath))
{
Logger.Log("'levels' directory does have write access", LogType.Debug);
if (Directory.Exists(backupsPath))
{
Logger.Log("Checking if 'levels/backups' directory has write access", LogType.Debug);
// Check to see if the levels/backups fikder has write permission
if (!hasWriteAccessToFolder(backupsPath))
{
Logger.Log("The server does not have write permission to the levels/backups folder.", LogType.Error);
Logger.Log("Folder: " + Directory.GetCurrentDirectory(), LogType.ErrorMessage);
blnSane = false;
}
else
{
Logger.Log("The server does not write permission to the levels/backups folder.", LogType.Debug);
}
}
}
else
{
Logger.Log("The server does not have permission to the levels folder.", LogType.Error);
Logger.Log("Folder: " + Directory.GetCurrentDirectory() + "/levels", LogType.ErrorMessage);
blnSane = false;
}
}
// Check to see if the logs folder has write permission
if (Directory.Exists(logsPath))
{
if (!hasWriteAccessToFolder(logsPath))
{
Logger.Log("The server does not have permission to the logs folder.", LogType.Error);
Logger.Log("Folder: " + Directory.GetCurrentDirectory(), LogType.ErrorMessage);
blnSane = false;
}
}
}
else
{
Logger.Log("The server does not have permission to the current server folder.", LogType.Error);
Logger.Log("Folder: " + Directory.GetCurrentDirectory(), LogType.ErrorMessage);
blnSane = false;
}
}
catch (Exception ex)
{
Logger.Log("Sanity check failed. Server may not work as expected.", LogType.Error);
Logger.Log(ex.Message, LogType.ErrorMessage);
}
return blnSane;
}