github.com/robertreppel/terraform@v0.11.8-0.20180412164320-05291ab9822d/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  }