github.com/gavinw2006/hashicorp-terraform@v0.11.12-beta1/configs/configload/inode.go (about)

     1  // +build linux darwin openbsd netbsd solaris dragonfly
     2  
     3  package configload
     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  }