code: func proccessEnvFileLine(line []byte, filePath string,
  	currentLine int) (key, value string, err error) {
  
  	if !utf8.Valid(line) {
  		return ``, ``, fmt.Errorf("env file %s contains invalid utf8 bytes at line %d: %v",
  			filePath, currentLine+1, line)
  	}
  
  	// We trim UTF8 BOM from the first line of the file but no others
  	if currentLine == 0 {
  		line = bytes.TrimPrefix(line, utf8bom)
  	}
  
  	// trim the line from all leading whitespace first
  	line = bytes.TrimLeftFunc(line, unicode.IsSpace)
  
  	// If the line is empty or a comment, we return a blank key/value pair.
  	if len(line) == 0 || line[0] == '#' {
  		return ``, ``, nil
  	}
  
  	data := strings.SplitN(string(line), "=", 2)
  	key = data[0]
  	if errs := validation.IsEnvVarName(key); len(errs) != 0 {
  		return ``, ``, fmt.Errorf("%q is not a valid key name: %s", key, strings.Join(errs, ";"))
  	}
  
  	if len(data) == 2 {
  		value = data[1]
  	} else {
  		// No value (no `=` in the line) is a signal to obtain the value
  		// from the environment.
  		value = os.Getenv(key)
  	}
  	return
  }
docs: // proccessEnvFileLine returns a blank key if the line is empty or a comment.
  // The value will be retrieved from the environment if necessary.