mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-12-28 18:16:31 +00:00
1e7b32490d
This allows for building GoToSocial with [SQLite transpiled to WASM](https://github.com/ncruces/go-sqlite3) and accessed through [Wazero](https://wazero.io/).
29 lines
713 B
Go
29 lines
713 B
Go
package sysfs
|
|
|
|
import (
|
|
"io/fs"
|
|
"path"
|
|
|
|
experimentalsys "github.com/tetratelabs/wazero/experimental/sys"
|
|
"github.com/tetratelabs/wazero/sys"
|
|
)
|
|
|
|
// inoFromFileInfo uses stat to get the inode information of the file.
|
|
func inoFromFileInfo(dirPath string, info fs.FileInfo) (ino sys.Inode, errno experimentalsys.Errno) {
|
|
if v, ok := info.Sys().(*sys.Stat_t); ok {
|
|
return v.Ino, 0
|
|
}
|
|
if dirPath == "" {
|
|
// This is a FS.File backed implementation which doesn't have access to
|
|
// the original file path.
|
|
return
|
|
}
|
|
// Ino is no not in Win32FileAttributeData
|
|
inoPath := path.Clean(path.Join(dirPath, info.Name()))
|
|
var st sys.Stat_t
|
|
if st, errno = lstat(inoPath); errno == 0 {
|
|
ino = st.Ino
|
|
}
|
|
return
|
|
}
|