Skip to content

Commit

Permalink
fix: rw check and fix service init orders
Browse files Browse the repository at this point in the history
  • Loading branch information
hez2010 committed Apr 1, 2024
1 parent 26cfac8 commit 93dfdc5
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 10 deletions.
4 changes: 2 additions & 2 deletions src/GZCTF/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@

GZCTF.Program.Banner();

FilePath.EnsureDirs();

#region Host

builder.Services.AddLocalization(options => options.ResourcesPath = "Resources")
Expand Down Expand Up @@ -61,6 +59,8 @@
builder.Configuration.AddEnvironmentVariables("GZCTF_");
Log.Logger = LogHelper.GetInitLogger();

await FilePath.EnsureDirsAsync(builder.Environment);

#endregion Host

#region AppDbContext
Expand Down
21 changes: 13 additions & 8 deletions src/GZCTF/Utils/FilePath.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,13 @@ static class FilePath
{
const string Base = "files";

internal static string Logs => GetDir(DirType.Logs);
internal static string Uploads => GetDir(DirType.Uploads);
internal static string Capture => GetDir(DirType.Capture);
internal static readonly string Logs = GetDir(DirType.Logs);
internal static readonly string Uploads = GetDir(DirType.Uploads);
internal static readonly string Capture = GetDir(DirType.Capture);

internal static bool AllowBaseCreate()
internal static bool AllowBaseCreate(IHostEnvironment environment)
{
var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
if (env == "Development")
if (environment.IsDevelopment())
return true;

var know = Environment.GetEnvironmentVariable("YES_I_KNOW_FILES_ARE_NOT_PERSISTED_GO_AHEAD_PLEASE");
Expand All @@ -28,17 +27,23 @@ internal static bool AllowBaseCreate()
return false;
}

internal static void EnsureDirs()
internal static async Task EnsureDirsAsync(IHostEnvironment environment)
{
if (!Directory.Exists(Base))
{
if (AllowBaseCreate())
if (AllowBaseCreate(environment))
Directory.CreateDirectory(Base);
else
Program.ExitWithFatalMessage(
Program.StaticLocalizer[nameof(Resources.Program.Init_NoFilesDir), Path.GetFullPath(Base)]);
}

await using (var productFile = File.Open("product.name", FileMode.Create))
await using (var writer = new StreamWriter(productFile))
{
await writer.WriteLineAsync("GZCTF");
}

foreach (DirType type in Enum.GetValues<DirType>())
{
var path = Path.Combine(Base, type.ToString().ToLower());
Expand Down

0 comments on commit 93dfdc5

Please sign in to comment.