code: func (s *LocalState) lockInfo() (*LockInfo, error) {
  	path := s.lockInfoPath()
  	infoData, err := ioutil.ReadFile(path)
  	if err != nil {
  		return nil, err
  	}
  
  	info := LockInfo{}
  	err = json.Unmarshal(infoData, &info)
  	if err != nil {
  		return nil, fmt.Errorf("state file %q locked, but could not unmarshal lock info: %s", s.Path, err)
  	}
  	return &info, nil
  }
docs: // lockInfo returns the data in a lock info file