github.com/tetratelabs/wazero@v1.2.1/internal/sysfs/unlink_windows.go (about)

     1  //go:build windows
     2  
     3  package sysfs
     4  
     5  import (
     6  	"os"
     7  	"syscall"
     8  
     9  	"github.com/tetratelabs/wazero/internal/platform"
    10  )
    11  
    12  func Unlink(name string) syscall.Errno {
    13  	err := syscall.Unlink(name)
    14  	if err == nil {
    15  		return 0
    16  	}
    17  	errno := platform.UnwrapOSError(err)
    18  	if errno == syscall.EBADF {
    19  		lstat, errLstat := os.Lstat(name)
    20  		if errLstat == nil && lstat.Mode()&os.ModeSymlink != 0 {
    21  			errno = platform.UnwrapOSError(os.Remove(name))
    22  		} else {
    23  			errno = syscall.EISDIR
    24  		}
    25  	}
    26  	return errno
    27  }