CreateFileWithInjection creates the given file at the project path, and injects the appropriate template
(pathToCreate string, projectPath string, fileName string, methodName string)
| 746 | // CreateFileWithInjection creates the given file at the |
| 747 | // project path, and injects the appropriate template |
| 748 | func (p *Project) CreateFileWithInjection(pathToCreate string, projectPath string, fileName string, methodName string) error { |
| 749 | createdFile, err := os.Create(filepath.Join(projectPath, pathToCreate, fileName)) |
| 750 | if err != nil { |
| 751 | return err |
| 752 | } |
| 753 | |
| 754 | defer createdFile.Close() |
| 755 | |
| 756 | switch methodName { |
| 757 | case "main": |
| 758 | createdTemplate := template.Must(template.New(fileName).Parse(string(p.FrameworkMap[p.ProjectType].templater.Main()))) |
| 759 | err = createdTemplate.Execute(createdFile, p) |
| 760 | case "server": |
| 761 | createdTemplate := template.Must(template.New(fileName).Parse(string(p.FrameworkMap[p.ProjectType].templater.Server()))) |
| 762 | err = createdTemplate.Execute(createdFile, p) |
| 763 | case "routes": |
| 764 | routeFileBytes := p.FrameworkMap[p.ProjectType].templater.Routes() |
| 765 | createdTemplate := template.Must(template.New(fileName).Parse(string(routeFileBytes))) |
| 766 | err = createdTemplate.Execute(createdFile, p) |
| 767 | case "releaser": |
| 768 | createdTemplate := template.Must(template.New(fileName).Parse(string(advanced.Releaser()))) |
| 769 | err = createdTemplate.Execute(createdFile, p) |
| 770 | case "go-test": |
| 771 | createdTemplate := template.Must(template.New(fileName).Parse(string(advanced.Test()))) |
| 772 | err = createdTemplate.Execute(createdFile, p) |
| 773 | case "releaser-config": |
| 774 | createdTemplate := template.Must(template.New(fileName).Parse(string(advanced.ReleaserConfig()))) |
| 775 | err = createdTemplate.Execute(createdFile, p) |
| 776 | case "database": |
| 777 | createdTemplate := template.Must(template.New(fileName).Parse(string(p.DBDriverMap[p.DBDriver].templater.Service()))) |
| 778 | err = createdTemplate.Execute(createdFile, p) |
| 779 | case "db-docker": |
| 780 | createdTemplate := template.Must(template.New(fileName).Parse(string(p.DockerMap[p.Docker].templater.Docker()))) |
| 781 | err = createdTemplate.Execute(createdFile, p) |
| 782 | case "integration-tests": |
| 783 | createdTemplate := template.Must(template.New(fileName).Parse(string(p.DBDriverMap[p.DBDriver].templater.Tests()))) |
| 784 | err = createdTemplate.Execute(createdFile, p) |
| 785 | case "tests": |
| 786 | createdTemplate := template.Must(template.New(fileName).Parse(string(p.FrameworkMap[p.ProjectType].templater.TestHandler()))) |
| 787 | err = createdTemplate.Execute(createdFile, p) |
| 788 | case "env": |
| 789 | if p.DBDriver != "none" { |
| 790 | |
| 791 | envBytes := [][]byte{ |
| 792 | tpl.GlobalEnvTemplate(), |
| 793 | p.DBDriverMap[p.DBDriver].templater.Env(), |
| 794 | } |
| 795 | createdTemplate := template.Must(template.New(fileName).Parse(string(bytes.Join(envBytes, []byte("\n"))))) |
| 796 | err = createdTemplate.Execute(createdFile, p) |
| 797 | |
| 798 | } else { |
| 799 | createdTemplate := template.Must(template.New(fileName).Parse(string(tpl.GlobalEnvTemplate()))) |
| 800 | err = createdTemplate.Execute(createdFile, p) |
| 801 | } |
| 802 | } |
| 803 | |
| 804 | if err != nil { |
| 805 | return err |