Compare commits

...

4 commits

Author SHA1 Message Date
Robert Janetzko
3deeb4cf80 fix goreleaser 2023-11-17 15:37:02 +00:00
Robert Janetzko
5120a19a28 prevent errors on unknown events - generator - fixes #13 2023-11-17 16:16:34 +01:00
Robert Janetzko
bd631ebff9 prevent errors on unknown events 2023-11-17 15:50:14 +01:00
Robert Janetzko
1cbaac47cd typo fixes #14 2023-11-16 22:16:23 +01:00
12 changed files with 103 additions and 69 deletions

View file

@ -1,25 +1,4 @@
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.231.5/containers/go/.devcontainer/base.Dockerfile ARG VARIANT="1.21-bullseye"
FROM mcr.microsoft.com/devcontainers/go:1-${VARIANT}
# [Choice] Go version (use -bullseye variants on local arm64/Apple Silicon): 1, 1.16, 1.17, 1-bullseye, 1.16-bullseye, 1.17-bullseye, 1-buster, 1.16-buster, 1.17-buster
ARG VARIANT="1.18-bullseye"
FROM mcr.microsoft.com/vscode/devcontainers/go:0-${VARIANT}
# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
ARG NODE_VERSION="none"
RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
# [Optional] Uncomment this section to install additional OS packages.
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends graphviz cmake zlib1g-dev genisoimage
RUN cd /tmp && git clone https://github.com/hamstergene/libdmg-hfsplus \
&& cd libdmg-hfsplus && cmake . -B build && make -C build/dmg -j8 && cp build/dmg/dmg /usr/local/bin \
&& rm -rf /tmp/libdmg-hfsplus
# [Optional] Uncomment the next lines to use go get to install anything else you need
USER vscode USER vscode
# RUN go get -x <your-dependency-or-tool>
# RUN npm install -g @angular/CLI
# [Optional] Uncomment this line to install global node packages.
# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
RUN go install github.com/tc-hib/go-winres@latest \
&& go install github.com/goreleaser/goreleaser@latest

View file

@ -1,40 +1,32 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: // For format details, see https://aka.ms/devcontainer.json. For config options, see the
// https://github.com/microsoft/vscode-dev-containers/tree/v0.231.5/containers/go // README at: https://github.com/devcontainers/templates/tree/main/src/go
{ {
"name": "Go", "name": "Go",
"build": { "build": {
"dockerfile": "Dockerfile", "dockerfile": "Dockerfile",
"args": { "args": {
// Update the VARIANT arg to pick a version of Go: 1, 1.18, 1.17 "VARIANT": "1.21"
// Append -bullseye or -buster to pin to an OS version.
// Use -bullseye variants on local arm64/Apple Silicon.
"VARIANT": "1.18",
// Options
"NODE_VERSION": "lts/*"
} }
}, },
"runArgs": [ "customizations": {
"--cap-add=SYS_PTRACE", // Configure properties specific to VS Code.
"--security-opt", "vscode": {
"seccomp=unconfined" // Set *default* container specific settings.json values on container create.
], "settings": {
// Set *default* container specific settings.json values on container create. "go.toolsManagement.checkForUpdates": "local",
"settings": { "go.useLanguageServer": true,
"go.toolsManagement.checkForUpdates": "local", "go.gopath": "/go"
"go.useLanguageServer": true, },
"go.gopath": "/go" "extensions": [
"golang.Go",
"jinliming2.vscode-go-template",
"golang.go"
]
}
}, },
// Add the IDs of extensions you want installed when the container is created. "features": {
"extensions": [ "ghcr.io/devcontainers-contrib/features/apt-get-packages:1": {
"golang.Go", "packages": "genisoimage"
"jinliming2.vscode-go-template", }
"golang.go" }
],
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "go version",
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode",
"features": {}
} }

View file

@ -18,7 +18,7 @@ jobs:
- name: Set up Go - name: Set up Go
uses: actions/setup-go@v3 uses: actions/setup-go@v3
with: with:
go-version: 1.18 go-version: 1.21
- name: Build - name: Build
run: cd backend && go build -v ./... run: cd backend && go build -v ./...
@ -33,13 +33,13 @@ jobs:
- name: Set up Go - name: Set up Go
uses: actions/setup-go@v2 uses: actions/setup-go@v2
with: with:
go-version: 1.18 go-version: 1.21
- name: Run GoReleaser - name: Run GoReleaser
uses: goreleaser/goreleaser-action@v2 uses: goreleaser/goreleaser-action@v2
with: with:
version: latest version: latest
workdir: backend workdir: backend
args: release --rm-dist args: release --clean
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -1,2 +1,5 @@
gen: gen:
go run analyze.go -g=true go run analyze.go -g=true
analyze:
go run analyze.go -l -a /workspaces/LegendsBrowser2/inputs4

View file

@ -4281,6 +4281,7 @@
"Base": true, "Base": true,
"Plus": false, "Plus": false,
"Values": { "Values": {
"as a symbol of everlasting peace": true,
"part of trade negotiation": true "part of trade negotiation": true
}, },
"Enum": true "Enum": true
@ -12296,7 +12297,8 @@
"Values": { "Values": {
"Autumn": true, "Autumn": true,
"Spring": true, "Spring": true,
"Summer": true "Summer": true,
"Winter": true
}, },
"Enum": true "Enum": true
}, },

View file

@ -21,9 +21,14 @@ func enumValue(s string) string {
} }
func enumString(s string) string { return strcase.ToDelimited(s, ' ') } func enumString(s string) string { return strcase.ToDelimited(s, ' ') }
func startswith(str, prefix string) bool {
return strings.HasPrefix(str, prefix)
}
var backendTemplate = template.Must(template.New("").Funcs(template.FuncMap{ var backendTemplate = template.Must(template.New("").Funcs(template.FuncMap{
"enum": enumValue, "enum": enumValue,
"enumString": enumString, "enumString": enumString,
"startswith": startswith,
}).Parse(`// Code generated by legendsbrowser; DO NOT EDIT. }).Parse(`// Code generated by legendsbrowser; DO NOT EDIT.
package model package model
@ -234,6 +239,9 @@ func parse{{ $obj.Name }}{{ if $plus }}Plus{{ end }}(p *util.XMLParser{{ if $plu
{{- end }} {{- end }}
{{- end }} {{- end }}
default: default:
{{- if not (startswith $obj.Name "HistoricalEventCollection") }}
obj.Details = NewHistoricalEventUnknown(string(data))
{{- end }}
p.Skip() p.Skip()
} }
if err != nil { if err != nil {

View file

@ -15,7 +15,7 @@ package model
{{- range $name, $obj := $.Objects }} {{- range $name, $obj := $.Objects }}
{{- if $obj.IsSubTypeOf "HistoricalEvent" }} {{- if $obj.IsSubTypeOf "HistoricalEvent" }}
func (x *{{ $obj.Name }}) Html(c *context) string { return "UNKNWON {{ $obj.Name }}" } func (x *{{ $obj.Name }}) Html(c *context) string { return "UNKNOWN {{ $obj.Name }}" }
{{- end }} {{- end }}
{{- end }} {{- end }}
`)) `))

View file

@ -18,11 +18,17 @@ builds:
- amd64 - amd64
archives: archives:
- format: zip - format: zip
name_template: "legendsbrowser-{{ .Version }}-{{ .Os }}" name_template: >-
replacements: legendsbrowser-
darwin: macos {{- .Version }}-
linux: linux {{- if eq .Os "darwin" }}macos
windows: win {{- else if eq .Os "windows" }}win
{{- else }}{{ .Os }}{{ end }}
# name_template: "legendsbrowser-{{ .Version }}-{{ .Os }}"
# replacements:
# darwin: macos
# linux: linux
# windows: win
changelog: changelog:
sort: asc sort: asc
filters: filters:

View file

@ -8,7 +8,7 @@ buildMacOs:
GOOS=darwin GOARCH=amd64 go build -o ../bin/legendsbrowser-mac GOOS=darwin GOARCH=amd64 go build -o ../bin/legendsbrowser-mac
GOOS=darwin GOARCH=arm64 go build -o ../bin/legendsbrowser-mac-m1 GOOS=darwin GOARCH=arm64 go build -o ../bin/legendsbrowser-mac-m1
buildMacOsApp: buildMacOsApp: buildMacOs
mkdir -p /tmp/build/macos mkdir -p /tmp/build/macos
cp -r macos/LegendsBrowser.app /tmp/build/macos/ cp -r macos/LegendsBrowser.app /tmp/build/macos/
GOOS=darwin GOARCH=amd64 go build -o /tmp/build/macos/LegendsBrowser.app/Contents/MacOS/LegendsBrowser GOOS=darwin GOARCH=amd64 go build -o /tmp/build/macos/LegendsBrowser.app/Contents/MacOS/LegendsBrowser

View file

@ -142,7 +142,7 @@ func (x *HistoricalEventAgreementConcluded) Html(c *Context) string { // TODO wo
} }
func (x *HistoricalEventAgreementFormed) Html(c *Context) string { // TODO no info func (x *HistoricalEventAgreementFormed) Html(c *Context) string { // TODO no info
return "UNKNWON HistoricalEventAgreementFormed" return "UNKNOWN HistoricalEventAgreementFormed"
} }
func (x *HistoricalEventAgreementMade) Html(c *Context) string { func (x *HistoricalEventAgreementMade) Html(c *Context) string {
@ -537,7 +537,7 @@ func (x *HistoricalEventChangeHfState) Html(c *Context) string {
case HistoricalEventChangeHfStateMood_Secretive: case HistoricalEventChangeHfStateMood_Secretive:
return c.hf(x.Hfid) + " withdrew from society " + c.site(x.SiteId, "in") + r return c.hf(x.Hfid) + " withdrew from society " + c.site(x.SiteId, "in") + r
} }
return "UNKNWON HistoricalEventChangeHfState" return "UNKNOWN HistoricalEventChangeHfState"
} }
func (x *HistoricalEventChangedCreatureType) Html(c *Context) string { func (x *HistoricalEventChangedCreatureType) Html(c *Context) string {

View file

@ -1,6 +1,7 @@
package model package model
import ( import (
"encoding/json"
"fmt" "fmt"
"html/template" "html/template"
"sort" "sort"
@ -289,3 +290,34 @@ func (r *Reference) Html(c *Context) template.HTML {
func (r *River) Id() int { func (r *River) Id() int {
return r.Id_ return r.Id_
} }
type HistoricalEventUnknown struct {
EventType string
}
func NewHistoricalEventUnknown(eventType string) *HistoricalEventUnknown {
return &HistoricalEventUnknown{
EventType: eventType,
}
}
func (x *HistoricalEventUnknown) Type() string { return x.EventType }
func (x *HistoricalEventUnknown) RelatedToEntity(id int) bool { return false }
func (x *HistoricalEventUnknown) RelatedToHf(id int) bool { return false }
func (x *HistoricalEventUnknown) RelatedToArtifact(id int) bool { return false }
func (x *HistoricalEventUnknown) RelatedToSite(id int) bool { return false }
func (x *HistoricalEventUnknown) RelatedToStructure(siteId, id int) bool { return false }
func (x *HistoricalEventUnknown) RelatedToRegion(id int) bool { return false }
func (x *HistoricalEventUnknown) RelatedToWorldConstruction(id int) bool { return false }
func (x *HistoricalEventUnknown) RelatedToWrittenContent(id int) bool { return false }
func (x *HistoricalEventUnknown) RelatedToDanceForm(id int) bool { return false }
func (x *HistoricalEventUnknown) RelatedToMusicalForm(id int) bool { return false }
func (x *HistoricalEventUnknown) RelatedToPoeticForm(id int) bool { return false }
func (x *HistoricalEventUnknown) RelatedToMountain(id int) bool { return false }
func (x *HistoricalEventUnknown) RelatedToIdentity(id int) bool { return false }
func (x *HistoricalEventUnknown) CheckFields() {}
func (x *HistoricalEventUnknown) Html(c *Context) string { return x.EventType }
func (x *HistoricalEventUnknown) MarshalJSON() ([]byte, error) {
return json.Marshal(make(map[string]any))
}

View file

@ -4431,11 +4431,14 @@ type HistoricalEventArtifactGivenReason int
const ( const (
HistoricalEventArtifactGivenReason_Unknown HistoricalEventArtifactGivenReason = iota HistoricalEventArtifactGivenReason_Unknown HistoricalEventArtifactGivenReason = iota
HistoricalEventArtifactGivenReason_AsASymbolOfEverlastingPeace
HistoricalEventArtifactGivenReason_PartOfTradeNegotiation HistoricalEventArtifactGivenReason_PartOfTradeNegotiation
) )
func parseHistoricalEventArtifactGivenReason(s string) HistoricalEventArtifactGivenReason { func parseHistoricalEventArtifactGivenReason(s string) HistoricalEventArtifactGivenReason {
switch s { switch s {
case "as a symbol of everlasting peace":
return HistoricalEventArtifactGivenReason_AsASymbolOfEverlastingPeace
case "part of trade negotiation": case "part of trade negotiation":
return HistoricalEventArtifactGivenReason_PartOfTradeNegotiation return HistoricalEventArtifactGivenReason_PartOfTradeNegotiation
} }
@ -4444,6 +4447,8 @@ func parseHistoricalEventArtifactGivenReason(s string) HistoricalEventArtifactGi
func (s HistoricalEventArtifactGivenReason) String() string { func (s HistoricalEventArtifactGivenReason) String() string {
switch s { switch s {
case HistoricalEventArtifactGivenReason_AsASymbolOfEverlastingPeace:
return "as a symbol of everlasting peace"
case HistoricalEventArtifactGivenReason_PartOfTradeNegotiation: case HistoricalEventArtifactGivenReason_PartOfTradeNegotiation:
return "part of trade negotiation" return "part of trade negotiation"
} }
@ -18617,6 +18622,7 @@ const (
HistoricalEventSiteTributeForcedSeason_Autumn HistoricalEventSiteTributeForcedSeason_Autumn
HistoricalEventSiteTributeForcedSeason_Spring HistoricalEventSiteTributeForcedSeason_Spring
HistoricalEventSiteTributeForcedSeason_Summer HistoricalEventSiteTributeForcedSeason_Summer
HistoricalEventSiteTributeForcedSeason_Winter
) )
func parseHistoricalEventSiteTributeForcedSeason(s string) HistoricalEventSiteTributeForcedSeason { func parseHistoricalEventSiteTributeForcedSeason(s string) HistoricalEventSiteTributeForcedSeason {
@ -18627,6 +18633,8 @@ func parseHistoricalEventSiteTributeForcedSeason(s string) HistoricalEventSiteTr
return HistoricalEventSiteTributeForcedSeason_Spring return HistoricalEventSiteTributeForcedSeason_Spring
case "Summer": case "Summer":
return HistoricalEventSiteTributeForcedSeason_Summer return HistoricalEventSiteTributeForcedSeason_Summer
case "Winter":
return HistoricalEventSiteTributeForcedSeason_Winter
} }
return HistoricalEventSiteTributeForcedSeason_Unknown return HistoricalEventSiteTributeForcedSeason_Unknown
} }
@ -18639,6 +18647,8 @@ func (s HistoricalEventSiteTributeForcedSeason) String() string {
return "spring" return "spring"
case HistoricalEventSiteTributeForcedSeason_Summer: case HistoricalEventSiteTributeForcedSeason_Summer:
return "summer" return "summer"
case HistoricalEventSiteTributeForcedSeason_Winter:
return "winter"
} }
return "unknown" return "unknown"
} }
@ -25187,6 +25197,7 @@ func parseHistoricalEvent(p *util.XMLParser) (*HistoricalEvent, error) {
case "written content composed": case "written content composed":
obj.Details, err = parseHistoricalEventWrittenContentComposed(p) obj.Details, err = parseHistoricalEventWrittenContentComposed(p)
default: default:
obj.Details = NewHistoricalEventUnknown(string(data))
p.Skip() p.Skip()
} }
if err != nil { if err != nil {
@ -25330,6 +25341,7 @@ func parseHistoricalEventPlus(p *util.XMLParser, obj *HistoricalEvent) (*Histori
case "war_peace_rejected": case "war_peace_rejected":
obj.Details, err = parseHistoricalEventPeaceRejectedPlus(p, obj.Details.(*HistoricalEventPeaceRejected)) obj.Details, err = parseHistoricalEventPeaceRejectedPlus(p, obj.Details.(*HistoricalEventPeaceRejected))
default: default:
obj.Details = NewHistoricalEventUnknown(string(data))
p.Skip() p.Skip()
} }
if err != nil { if err != nil {