github.com/medzin/terraform@v0.11.11/config/module/inode.go (about) 1 // +build linux darwin openbsd netbsd solaris dragonfly 2 3 package module 4 5 import ( 6 "fmt" 7 "os" 8 "syscall" 9 ) 10 11 // lookup the inode of a file on posix systems 12 func inode(path string) (uint64, error) { 13 stat, err := os.Stat(path) 14 if err != nil { 15 return 0, err 16 } 17 if st, ok := stat.Sys().(*syscall.Stat_t); ok { 18 return st.Ino, nil 19 } 20 return 0, fmt.Errorf("could not determine file inode") 21 }