Skip to content

Commit

Permalink
Fix error catching in server mode (#82)
Browse files Browse the repository at this point in the history
* Uplift error catching

* Go mod download first in docker

* Fix gen-docs CI

* Fix error type
  • Loading branch information
cuminandpaprika committed Nov 10, 2020
1 parent 29a8611 commit f305424
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 19 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/gen_docs.yml
Expand Up @@ -15,7 +15,7 @@ jobs:

- name: Gen Docs
if: "!contains(github.event.head_commit.message, 'skip-ci')"
run: make docker-mermaid-run
run: make demo-docker

- name: Publish Docs
id: deploy-netlify-preview
Expand Down
2 changes: 2 additions & 0 deletions Dockerfile
@@ -1,6 +1,8 @@
FROM golang:alpine AS builder

WORKDIR /src
COPY go.* /src/
RUN go mod download
ADD . .
RUN go build -o sysl-catalog .

Expand Down
11 changes: 10 additions & 1 deletion Makefile
Expand Up @@ -21,13 +21,22 @@ demo-html:
sysl-catalog run --type=html -o demo/html demo/demo.sysl
demo-markdown:
sysl-catalog run -o demo/markdown demo/demo.sysl
demo-docker: docker
docker run \
-e SYSL_TOKENS=$(SYSL_TOKENS) \
-e SYSL_MODULES=on \
-v $$(pwd):/usr/ \
anzbank/sysl-catalog:latest run \
-o demo/html \
-v \
--type=html \
demo/demo.sysl
demo-server: docker
docker run \
-p 6900:6900 \
-e SYSL_TOKENS=$(SYSL_TOKENS) \
-e SYSL_PLANTUML=localhost:8080 \
-e SYSL_MODULES=on \
-v $$(pwd)/demo/html:/out:rw \
-v $$(pwd)/demo:/usr/demo:ro \
anzbank/sysl-catalog:latest run \
--serve \
Expand Down
8 changes: 5 additions & 3 deletions main.go
Expand Up @@ -95,20 +95,22 @@ func main() {
}()
if handler.RootModule == nil {
m, err = parseSyslFile(".", *input, fs, logger)
if err != nil {
return nil, err
}
} else {
var changedModule *sysl.Module
wd, _ := os.Getwd()
relativeChangedFilePath := "." + strings.TrimPrefix(i.(watch.Event).Path, wd)
changedModule, err = parseSyslFile(".", relativeChangedFilePath, fs, logger)
if err == nil {
m = overwriteSyslModules(handler.RootModule, changedModule)
} else {
return nil, err
}
}
return
}()
if err != nil {
fmt.Println(err)
}
handler.Update(m, err)
livereload.ForceRefresh()
logger.Info(i)
Expand Down
33 changes: 19 additions & 14 deletions pkg/catalog/server.go
Expand Up @@ -18,25 +18,30 @@ import (
// Update loads another Sysl module into a project and runs
func (p *Generator) Update(m *sysl.Module, errs ...error) *Generator {
//p.Fs = afero.NewMemMapFs()
p.RootModule = m
p.GeneratedFiles = make(map[string][]byte)
p.Mapper = syslwrapper.MakeAppMapper(m)
p.Mapper.IndexTypes()
p.Mapper.ConvertTypes()
if p.RootModule != nil && len(p.ModuleAsMacroPackage(p.RootModule)) <= 1 && !p.CustomTemplate {
p.StartTemplateIndex = 1 // skip the MacroPackageProject
} else {
p.StartTemplateIndex = 0
}
p.errs = []error{}
for _, err := range errs {
if p.errs == nil {
p.errs = make([]error, 0, len(errs))
}
if err != nil {
p.errs = append(p.errs, err)
// Clear generated files since we only want to display an error
p.GeneratedFiles = nil
p.Fs = afero.NewMemMapFs()
}
}
p.Run()

if len(p.errs) == 0 {
p.RootModule = m
p.GeneratedFiles = make(map[string][]byte)
p.Mapper = syslwrapper.MakeAppMapper(m)
p.Mapper.IndexTypes()
p.Mapper.ConvertTypes()
if p.RootModule != nil && len(p.ModuleAsMacroPackage(p.RootModule)) <= 1 && !p.CustomTemplate {
p.StartTemplateIndex = 1 // skip the MacroPackageProject
} else {
p.StartTemplateIndex = 0
}
p.Run()
}

return p
}

Expand Down

0 comments on commit f305424

Please sign in to comment.