func parseOutputIntoEnv()

in astro/hooks.go [78:98]


func parseOutputIntoEnv(buf *bytes.Buffer) error {
	scanner := bufio.NewScanner(buf)

	for scanner.Scan() {
		parts := strings.SplitN(scanner.Text(), "=", 2)
		if len(parts) != 2 {
			// abort processing output on first non-conforming line
			return nil
		}

		if err := os.Setenv(parts[0], parts[1]); err != nil {
			return err
		}
	}

	if err := scanner.Err(); err != nil {
		return fmt.Errorf("error parsing hook output: %v", err)
	}

	return nil
}