| 671 | } |
| 672 | |
| 673 | func parseInstallScript(files fs.FS, buildInfo codersdk.BuildInfoResponse) ([]byte, error) { |
| 674 | scriptFile, err := fs.ReadFile(files, "install.sh") |
| 675 | if err != nil { |
| 676 | return nil, err |
| 677 | } |
| 678 | |
| 679 | script, err := template.New("install.sh").Parse(string(scriptFile)) |
| 680 | if err != nil { |
| 681 | return nil, err |
| 682 | } |
| 683 | |
| 684 | var buf bytes.Buffer |
| 685 | state := installScriptState{Origin: buildInfo.DashboardURL, Version: buildInfo.Version} |
| 686 | err = script.Execute(&buf, state) |
| 687 | if err != nil { |
| 688 | return nil, err |
| 689 | } |
| 690 | |
| 691 | return buf.Bytes(), nil |
| 692 | } |
| 693 | |
| 694 | // Action represents a link. |
| 695 | type Action struct { |