Browse Source

Add: os.execute (not supported)

AnnulusGames 1 year ago
parent
commit
41e072d658

+ 1 - 0
src/Lua/Standard/OpenLibExtensions.cs

@@ -88,6 +88,7 @@ public static class OpenLibExtensions
     static readonly LuaFunction[] osFunctions = [
     static readonly LuaFunction[] osFunctions = [
         ClockFunction.Instance,
         ClockFunction.Instance,
         DiffTimeFunction.Instance,
         DiffTimeFunction.Instance,
+        ExecuteFunction.Instance,
         ExitFunction.Instance,
         ExitFunction.Instance,
         GetEnvFunction.Instance,
         GetEnvFunction.Instance,
         OperatingSystem.RemoveFunction.Instance,
         OperatingSystem.RemoveFunction.Instance,

+ 23 - 0
src/Lua/Standard/OperatingSystem/ExecuteFunction.cs

@@ -0,0 +1,23 @@
+
+namespace Lua.Standard.OperatingSystem;
+
+// os.execute(command) is not supported (always return nil)
+
+public sealed class ExecuteFunction : LuaFunction
+{
+    public override string Name => "execute";
+    public static readonly SetLocaleFunction Instance = new();
+
+    protected override ValueTask<int> InvokeAsyncCore(LuaFunctionExecutionContext context, Memory<LuaValue> buffer, CancellationToken cancellationToken)
+    {
+        if (context.HasArgument(0))
+        {
+            throw new NotSupportedException("os.execute(command) is not supported");
+        }
+        else
+        {
+            buffer.Span[0] = false;
+            return new(1);
+        }
+    }
+}