Add Engine.SupportDir argument.
This commit is contained in:
@@ -258,6 +258,10 @@ namespace OpenRA
|
|||||||
|
|
||||||
static void Initialize(Arguments args)
|
static void Initialize(Arguments args)
|
||||||
{
|
{
|
||||||
|
var supportDirArg = args.GetValue("Engine.SupportDir", null);
|
||||||
|
if (supportDirArg != null)
|
||||||
|
Platform.OverrideSupportDir(supportDirArg);
|
||||||
|
|
||||||
Console.WriteLine("Platform is {0}", Platform.CurrentPlatform);
|
Console.WriteLine("Platform is {0}", Platform.CurrentPlatform);
|
||||||
|
|
||||||
// Load the engine version as early as possible so it can be written to exception logs
|
// Load the engine version as early as possible so it can be written to exception logs
|
||||||
|
|||||||
@@ -71,9 +71,30 @@ namespace OpenRA
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static string SupportDir { get { return supportDir.Value; } }
|
public static string SupportDir { get { return supportDir.Value; } }
|
||||||
static Lazy<string> supportDir = Exts.Lazy(GetSupportDir);
|
static Lazy<string> supportDir = Exts.Lazy(GetSupportDir);
|
||||||
|
static string supportDirOverride;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specify a custom support directory that already exists on the filesystem.
|
||||||
|
/// MUST be called before Platform.SupportDir is first accessed.
|
||||||
|
/// </summary>
|
||||||
|
public static void OverrideSupportDir(string path)
|
||||||
|
{
|
||||||
|
if (!Directory.Exists(path))
|
||||||
|
throw new DirectoryNotFoundException(path);
|
||||||
|
|
||||||
|
if (!path.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal) &&
|
||||||
|
!path.EndsWith(Path.AltDirectorySeparatorChar.ToString(), StringComparison.Ordinal))
|
||||||
|
path += Path.DirectorySeparatorChar;
|
||||||
|
|
||||||
|
supportDirOverride = path;
|
||||||
|
}
|
||||||
|
|
||||||
static string GetSupportDir()
|
static string GetSupportDir()
|
||||||
{
|
{
|
||||||
|
// Use the custom override if it has been defined
|
||||||
|
if (supportDirOverride != null)
|
||||||
|
return supportDirOverride;
|
||||||
|
|
||||||
// Use a local directory in the game root if it exists (shared with the system support dir)
|
// Use a local directory in the game root if it exists (shared with the system support dir)
|
||||||
var localSupportDir = Path.Combine(GameDir, "Support");
|
var localSupportDir = Path.Combine(GameDir, "Support");
|
||||||
if (Directory.Exists(localSupportDir))
|
if (Directory.Exists(localSupportDir))
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using OpenRA.Support;
|
using OpenRA.Support;
|
||||||
@@ -23,6 +22,10 @@ namespace OpenRA.Server
|
|||||||
static void Main(string[] args)
|
static void Main(string[] args)
|
||||||
{
|
{
|
||||||
var arguments = new Arguments(args);
|
var arguments = new Arguments(args);
|
||||||
|
var supportDirArg = arguments.GetValue("Engine.SupportDir", null);
|
||||||
|
if (supportDirArg != null)
|
||||||
|
Platform.OverrideSupportDir(supportDirArg);
|
||||||
|
|
||||||
Log.AddChannel("debug", "dedicated-debug.log");
|
Log.AddChannel("debug", "dedicated-debug.log");
|
||||||
Log.AddChannel("perf", "dedicated-perf.log");
|
Log.AddChannel("perf", "dedicated-perf.log");
|
||||||
Log.AddChannel("server", "dedicated-server.log");
|
Log.AddChannel("server", "dedicated-server.log");
|
||||||
|
|||||||
Reference in New Issue
Block a user