Browse Source

feat: add GetTempFileName method to ILuaFileSystem and update TmpName to use it

Akeit0 7 months ago
parent
commit
0cf2eca99a
2 changed files with 7 additions and 1 deletions
  1. 6 0
      src/Lua/IO/ILuaFileSystem.cs
  2. 1 1
      src/Lua/Standard/OperatingSystemLibrary.cs

+ 6 - 0
src/Lua/IO/ILuaFileSystem.cs

@@ -9,6 +9,7 @@ public interface ILuaFileSystem
     public IStream? Open(string path, LuaFileOpenMode mode, bool throwError);
     public void Rename(string oldName, string newName);
     public void Remove(string path);
+    public string GetTempFileName ();
 }
 
 public interface IStream : IDisposable
@@ -111,6 +112,11 @@ public sealed class FileSystem : ILuaFileSystem
     {
         File.Delete(path);
     }
+    
+    public string GetTempFileName ()
+    {
+        return Path.GetTempFileName();
+    }
 }
 
 public sealed class StreamWrapper(Stream innerStream) : IStream

+ 1 - 1
src/Lua/Standard/OperatingSystemLibrary.cs

@@ -190,6 +190,6 @@ public sealed class OperatingSystemLibrary
 
     public ValueTask<int> TmpName(LuaFunctionExecutionContext context, CancellationToken cancellationToken)
     {
-        return new(context.Return(Path.GetTempFileName()));
+        return new(context.Return(context.State.FileSystem.GetTempFileName()));
     }
 }