MCPcopy Index your code
hub / github.com/Melkeydev/go-blueprint / CreateFileWithInjection

Method CreateFileWithInjection

cmd/program/program.go:748–809  ·  view source on GitHub ↗

CreateFileWithInjection creates the given file at the project path, and injects the appropriate template

(pathToCreate string, projectPath string, fileName string, methodName string)

Source from the content-addressed store, hash-verified

746// CreateFileWithInjection creates the given file at the
747// project path, and injects the appropriate template
748func (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

Callers 2

CreateMainFileMethod · 0.95

Calls 11

ReleaserFunction · 0.92
TestFunction · 0.92
ReleaserConfigFunction · 0.92
MainMethod · 0.65
ServerMethod · 0.65
RoutesMethod · 0.65
ServiceMethod · 0.65
DockerMethod · 0.65
TestsMethod · 0.65
TestHandlerMethod · 0.65
EnvMethod · 0.65

Tested by

no test coverage detected