44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Reflection;
|
|
|
|
namespace PureCrack.Util;
|
|
|
|
internal static class Workspace
|
|
{
|
|
public static string Root { get; }
|
|
|
|
public static string DataDir { get; }
|
|
|
|
public static string RunsDir { get; }
|
|
|
|
public static string CapturesDir { get; }
|
|
|
|
public static string StubsDir { get; }
|
|
|
|
public static string E2eDir { get; }
|
|
|
|
static Workspace()
|
|
{
|
|
string environmentVariable = Environment.GetEnvironmentVariable("PURECRACK_WORKSPACE");
|
|
if (!string.IsNullOrWhiteSpace(environmentVariable))
|
|
{
|
|
Root = environmentVariable;
|
|
}
|
|
else
|
|
{
|
|
Root = Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location ?? Process.GetCurrentProcess().MainModule.FileName) ?? throw new InvalidOperationException("can't resolve EXE directory");
|
|
}
|
|
DataDir = Path.Combine(Root, "data");
|
|
RunsDir = Path.Combine(Root, "runs");
|
|
CapturesDir = Path.Combine(RunsDir, "captures");
|
|
StubsDir = Path.Combine(RunsDir, "stubs");
|
|
E2eDir = Path.Combine(RunsDir, "e2e");
|
|
Directory.CreateDirectory(DataDir);
|
|
Directory.CreateDirectory(CapturesDir);
|
|
Directory.CreateDirectory(StubsDir);
|
|
Directory.CreateDirectory(E2eDir);
|
|
}
|
|
}
|