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/ncruces/go-sqlite3/vfs/file.go | |
parent | [chore] update URLs to forked source (diff) | |
download | gotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz |
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/ncruces/go-sqlite3/vfs/file.go')
-rw-r--r-- | vendor/github.com/ncruces/go-sqlite3/vfs/file.go | 222 |
1 files changed, 0 insertions, 222 deletions
diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/file.go b/vendor/github.com/ncruces/go-sqlite3/vfs/file.go deleted file mode 100644 index bc90555e7..000000000 --- a/vendor/github.com/ncruces/go-sqlite3/vfs/file.go +++ /dev/null @@ -1,222 +0,0 @@ -package vfs - -import ( - "errors" - "io" - "io/fs" - "os" - "path/filepath" - "syscall" - - "github.com/ncruces/go-sqlite3/util/osutil" -) - -type vfsOS struct{} - -func (vfsOS) FullPathname(path string) (string, error) { - path, err := filepath.Abs(path) - if err != nil { - return "", err - } - return path, testSymlinks(filepath.Dir(path)) -} - -func testSymlinks(path string) error { - p, err := filepath.EvalSymlinks(path) - if err != nil { - return err - } - if p != path { - return _OK_SYMLINK - } - return nil -} - -func (vfsOS) Delete(path string, syncDir bool) error { - err := os.Remove(path) - if errors.Is(err, fs.ErrNotExist) { - return _IOERR_DELETE_NOENT - } - if err != nil { - return err - } - if canSyncDirs && syncDir { - f, err := os.Open(filepath.Dir(path)) - if err != nil { - return _OK - } - defer f.Close() - err = osSync(f, false, false) - if err != nil { - return _IOERR_DIR_FSYNC - } - } - return nil -} - -func (vfsOS) Access(name string, flags AccessFlag) (bool, error) { - err := osAccess(name, flags) - if flags == ACCESS_EXISTS { - if errors.Is(err, fs.ErrNotExist) { - return false, nil - } - } else { - if errors.Is(err, fs.ErrPermission) { - return false, nil - } - } - return err == nil, err -} - -func (vfsOS) Open(name string, flags OpenFlag) (File, OpenFlag, error) { - // notest // OpenFilename is called instead - return nil, 0, _CANTOPEN -} - -func (vfsOS) OpenFilename(name *Filename, flags OpenFlag) (File, OpenFlag, error) { - oflags := _O_NOFOLLOW - if flags&OPEN_EXCLUSIVE != 0 { - oflags |= os.O_EXCL - } - if flags&OPEN_CREATE != 0 { - oflags |= os.O_CREATE - } - if flags&OPEN_READONLY != 0 { - oflags |= os.O_RDONLY - } - if flags&OPEN_READWRITE != 0 { - oflags |= os.O_RDWR - } - - var err error - var f *os.File - if name == nil { - f, err = os.CreateTemp("", "*.db") - } else { - f, err = osutil.OpenFile(name.String(), oflags, 0666) - } - if err != nil { - if name == nil { - return nil, flags, _IOERR_GETTEMPPATH - } - if errors.Is(err, syscall.EISDIR) { - return nil, flags, _CANTOPEN_ISDIR - } - return nil, flags, err - } - - if modeof := name.URIParameter("modeof"); modeof != "" { - if err = osSetMode(f, modeof); err != nil { - f.Close() - return nil, flags, _IOERR_FSTAT - } - } - if flags&OPEN_DELETEONCLOSE != 0 { - os.Remove(f.Name()) - } - - file := vfsFile{ - File: f, - psow: true, - readOnly: flags&OPEN_READONLY != 0, - syncDir: canSyncDirs && - flags&(OPEN_MAIN_JOURNAL|OPEN_SUPER_JOURNAL|OPEN_WAL) != 0 && - flags&(OPEN_CREATE) != 0, - shm: NewSharedMemory(name.String()+"-shm", flags), - } - return &file, flags, nil -} - -type vfsFile struct { - *os.File - shm SharedMemory - lock LockLevel - readOnly bool - keepWAL bool - syncDir bool - psow bool -} - -var ( - // Ensure these interfaces are implemented: - _ FileLockState = &vfsFile{} - _ FileHasMoved = &vfsFile{} - _ FileSizeHint = &vfsFile{} - _ FilePersistWAL = &vfsFile{} - _ FilePowersafeOverwrite = &vfsFile{} -) - -func (f *vfsFile) Close() error { - if f.shm != nil { - f.shm.Close() - } - f.Unlock(LOCK_NONE) - return f.File.Close() -} - -func (f *vfsFile) Sync(flags SyncFlag) error { - dataonly := (flags & SYNC_DATAONLY) != 0 - fullsync := (flags & 0x0f) == SYNC_FULL - - err := osSync(f.File, fullsync, dataonly) - if err != nil { - return err - } - if canSyncDirs && f.syncDir { - f.syncDir = false - d, err := os.Open(filepath.Dir(f.File.Name())) - if err != nil { - return nil - } - defer d.Close() - err = osSync(d, false, false) - if err != nil { - return _IOERR_DIR_FSYNC - } - } - return nil -} - -func (f *vfsFile) Size() (int64, error) { - return f.Seek(0, io.SeekEnd) -} - -func (f *vfsFile) SectorSize() int { - return _DEFAULT_SECTOR_SIZE -} - -func (f *vfsFile) DeviceCharacteristics() DeviceCharacteristic { - ret := IOCAP_SUBPAGE_READ - if osBatchAtomic(f.File) { - ret |= IOCAP_BATCH_ATOMIC - } - if f.psow { - ret |= IOCAP_POWERSAFE_OVERWRITE - } - return ret -} - -func (f *vfsFile) SizeHint(size int64) error { - return osAllocate(f.File, size) -} - -func (f *vfsFile) HasMoved() (bool, error) { - fi, err := f.Stat() - if err != nil { - return false, err - } - pi, err := os.Stat(f.Name()) - if errors.Is(err, fs.ErrNotExist) { - return true, nil - } - if err != nil { - return false, err - } - return !os.SameFile(fi, pi), nil -} - -func (f *vfsFile) LockState() LockLevel { return f.lock } -func (f *vfsFile) PowersafeOverwrite() bool { return f.psow } -func (f *vfsFile) PersistWAL() bool { return f.keepWAL } -func (f *vfsFile) SetPowersafeOverwrite(psow bool) { f.psow = psow } -func (f *vfsFile) SetPersistWAL(keepWAL bool) { f.keepWAL = keepWAL } |