Files
sqlite3/vfs/os_std.go

51 lines
680 B
Go
Raw Normal View History

2024-11-29 15:51:51 +00:00
//go:build !unix
2023-09-18 12:43:57 +01:00
package vfs
import (
"io/fs"
"os"
)
2025-01-07 16:31:12 +00:00
const (
2025-03-26 02:13:30 +00:00
isUnix = false
2025-01-07 16:31:12 +00:00
_O_NOFOLLOW = 0
)
2024-09-27 12:32:11 +01:00
2023-09-18 12:43:57 +01:00
func osAccess(path string, flags AccessFlag) error {
fi, err := os.Stat(path)
if err != nil {
return err
}
if flags == ACCESS_EXISTS {
return nil
}
2023-12-04 12:37:53 +00:00
const (
S_IREAD = 0400
S_IWRITE = 0200
S_IEXEC = 0100
)
var want fs.FileMode = S_IREAD
2023-09-18 12:43:57 +01:00
if flags == ACCESS_READWRITE {
2023-12-04 12:37:53 +00:00
want |= S_IWRITE
2023-09-18 12:43:57 +01:00
}
if fi.IsDir() {
2023-12-04 12:37:53 +00:00
want |= S_IEXEC
2023-09-18 12:43:57 +01:00
}
if fi.Mode()&want != want {
return fs.ErrPermission
}
return nil
}
2024-09-27 12:32:11 +01:00
func osSetMode(file *os.File, modeof string) error {
fi, err := os.Stat(modeof)
if err != nil {
return err
}
file.Chmod(fi.Mode())
return nil
}