MCPcopy Create free account
hub / github.com/factorapp/factor / ProcessAll

Function ProcessAll

model/process.go:11–77  ·  view source on GitHub ↗

ProcessAll processes models starting at base

(base string)

Source from the content-addressed store, hash-verified

9
10// ProcessAll processes models starting at base
11func ProcessAll(base string) error {
12 servers := []string{}
13 clients := []string{}
14 err := filepath.Walk(base, func(path string, info os.FileInfo, err error) error {
15 if err != nil {
16 return err
17 }
18 if info.IsDir() {
19 return nil
20 }
21 if !isModel(info) {
22 return nil
23 }
24 model := New(path, info)
25
26 typesFilename := filepath.Join(base, model.TypesFilename())
27 log.Printf("generating %s", typesFilename)
28 typesFd, err := os.Create(typesFilename)
29 if err != nil {
30 return err
31 }
32
33 serverFilename := filepath.Join(base, model.ServerFilename())
34 log.Printf("generating %s", serverFilename)
35 serverFd, err := os.Create(serverFilename)
36 if err != nil {
37 return err
38 }
39
40 clientFilename := filepath.Join(base, model.ClientFilename())
41 log.Printf("generating %s", clientFilename)
42 clientFd, err := os.Create(clientFilename)
43 if err != nil {
44 return err
45 }
46
47 if err := model.Write(typesFd, clientFd, serverFd); err != nil {
48 return err
49 }
50 servers = append(servers, model.ServerName())
51 clients = append(clients, model.ClientName())
52 return nil
53 })
54 if err != nil {
55 return err
56 }
57
58 log.Printf("writing client file")
59 clientFd, err := os.Create(filepath.Join(base, "client_generated.go"))
60 if err != nil {
61 return err
62 }
63 if err := WriteClientFile(clientFd, clients); err != nil {
64 return err
65 }
66
67 log.Printf("writing server file")
68 serverFd, err := os.Create(filepath.Join(base, "server_generated.go"))

Callers 1

buildFunction · 0.92

Calls 11

isModelFunction · 0.85
NewFunction · 0.85
WriteClientFileFunction · 0.85
WriteServerFileFunction · 0.85
TypesFilenameMethod · 0.80
CreateMethod · 0.80
ServerFilenameMethod · 0.80
ClientFilenameMethod · 0.80
WriteMethod · 0.80
ServerNameMethod · 0.80
ClientNameMethod · 0.80

Tested by

no test coverage detected