From d8a11ada6726e1ca831b0520916d83d06ba2e7f6 Mon Sep 17 00:00:00 2001 From: roboogg133 Date: Fri, 1 Aug 2025 19:36:26 -0300 Subject: [PATCH] copy maintain filemode --- internal/internal.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/internal/internal.go b/internal/internal.go index 6517a26..f2a511e 100644 --- a/internal/internal.go +++ b/internal/internal.go @@ -243,6 +243,13 @@ func SafeCopy(L *lua.LState) int { } defer src.Close() + status, err := src.Stat() + if err != nil { + L.Push(lua.LFalse) + L.Push(lua.LString("[packets] copy failed\n" + err.Error())) + return 2 + } + err = os.MkdirAll(filepath.Dir(newname), 0755) if err != nil { L.Push(lua.LFalse) @@ -256,7 +263,13 @@ func SafeCopy(L *lua.LState) int { L.Push(lua.LString("[packets] copy failed\n" + err.Error())) return 2 } + defer dst.Close() + if err := dst.Chmod(status.Mode()); err != nil { + L.Push(lua.LFalse) + L.Push(lua.LString("[packets] copy failed\n" + err.Error())) + return 2 + } _, err = io.Copy(dst, src) if err != nil {