diff options
author | 2025-03-09 17:47:56 +0100 | |
---|---|---|
committer | 2025-03-10 01:59:49 +0100 | |
commit | 3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch) | |
tree | f61faa581feaaeaba2542b9f2b8234a590684413 /vendor/github.com/tetratelabs/wazero/internal/sysfs/rename_windows.go | |
parent | [chore] update URLs to forked source (diff) | |
download | gotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz |
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/tetratelabs/wazero/internal/sysfs/rename_windows.go')
-rw-r--r-- | vendor/github.com/tetratelabs/wazero/internal/sysfs/rename_windows.go | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/vendor/github.com/tetratelabs/wazero/internal/sysfs/rename_windows.go b/vendor/github.com/tetratelabs/wazero/internal/sysfs/rename_windows.go deleted file mode 100644 index 5e8102239..000000000 --- a/vendor/github.com/tetratelabs/wazero/internal/sysfs/rename_windows.go +++ /dev/null @@ -1,55 +0,0 @@ -package sysfs - -import ( - "os" - "syscall" - - "github.com/tetratelabs/wazero/experimental/sys" -) - -func rename(from, to string) sys.Errno { - if from == to { - return 0 - } - - var fromIsDir, toIsDir bool - if fromStat, errno := stat(from); errno != 0 { - return errno // failed to stat from - } else { - fromIsDir = fromStat.Mode.IsDir() - } - if toStat, errno := stat(to); errno == sys.ENOENT { - return syscallRename(from, to) // file or dir to not-exist is ok - } else if errno != 0 { - return errno // failed to stat to - } else { - toIsDir = toStat.Mode.IsDir() - } - - // Now, handle known cases - switch { - case !fromIsDir && toIsDir: // file to dir - return sys.EISDIR - case !fromIsDir && !toIsDir: // file to file - // Use os.Rename instead of syscall.Rename to overwrite a file. - // This uses MoveFileEx instead of MoveFile (used by syscall.Rename). - return sys.UnwrapOSError(os.Rename(from, to)) - case fromIsDir && !toIsDir: // dir to file - return sys.ENOTDIR - default: // dir to dir - - // We can't tell if a directory is empty or not, via stat information. - // Reading the directory is expensive, as it can buffer large amounts - // of data on fail. Instead, speculatively try to remove the directory. - // This is only one syscall and won't buffer anything. - if errno := rmdir(to); errno == 0 || errno == sys.ENOENT { - return syscallRename(from, to) - } else { - return errno - } - } -} - -func syscallRename(from string, to string) sys.Errno { - return sys.UnwrapOSError(syscall.Rename(from, to)) -} |