# https://taskfile.dev version: "3" includes: generator: taskfile: ./internal/generator dir: ./internal/generator runtime: taskfile: ./internal/runtime dir: ./internal/runtime website: taskfile: ./website dir: ./website optional: true docs: taskfile: ../docs dir: ../docs optional: true tasks: recreate-template-dir: dir: internal/templates internal: true silent: true cmds: - rm -rf {{.TEMPLATE_DIR}} - mkdir -p {{.TEMPLATE_DIR}} install: dir: cmd/wails3 silent: true cmds: - go install - echo "Installed wails CLI" generate:template: dir: internal/templates/{{.TEMPLATE}} deps: - task: recreate-template-dir vars: TEMPLATE_DIR: "{{.TEMPLATE}}" silent: true cmds: - cmd: pnpm create vite frontend --template {{.TEMPLATE}} - cmd: cp -rf ../_base/{{.TEMPLATE}}/* . ignore_error: true - cmd: cp -rf ../_base/default/* . ignore_error: true - cmd: rm frontend/public/vite.svg - cmd: go run ../../../tasks/sed/sed.go replace -dir frontend -old Vite -new Wails -ext .ts,.js,.html -ignore vite.config.js,vite.config.ts,vite-env.d.ts - cmd: go run ../../../tasks/sed/sed.go replace -dir frontend -old vite -new wails -ext .ts,.js,.html -ignore vite.config.js,vite.config.ts,vite-env.d.ts - cmd: go run ../../../tasks/sed/sed.go replace -dir frontend -old wails.svg -new wails.png -ext .ts,.js,.html -ignore vite.config.js,vite.config.ts,vite-env.d.ts - cmd: go run ../../../tasks/sed/sed.go replace -dir frontend -old wailsjs.dev -new wails.io -ext .ts,.js,.html -ignore vite.config.js,vite.config.ts,vite-env.d.ts - cmd: go run ../../../tasks/sed/sed.go replace -dir frontend -old "framework powered by Wails" -new "framework powered by Vite" -ext .ts,.js,.html,.svelte -ignore vite.config.js,vite.config.ts,vite-env.d.ts release: summary: Release a new version of Wails. Call with `task v3:release -- ` dir: tasks/release cmds: - go run release.go {{.CLI_ARGS}} taskfile:upgrade: cmds: - go get -u github.com/go-task/task/v3 reinstall-cli: dir: cmd/wails3 internal: true silent: true cmds: - go install - echo "Reinstalled wails CLI" generate:events: dir: tasks/events cmds: - go run generate.go generate:templates: dir: internal/templates/ deps: - task: generate:template vars: TEMPLATE: svelte - task: generate:template vars: TEMPLATE: svelte-ts - task: generate:template vars: TEMPLATE: vue - task: generate:template vars: TEMPLATE: vue-ts - task: generate:template vars: TEMPLATE: react - task: generate:template vars: TEMPLATE: react-ts - task: generate:template vars: TEMPLATE: preact - task: generate:template vars: TEMPLATE: preact-ts - task: generate:template vars: TEMPLATE: lit - task: generate:template vars: TEMPLATE: lit-ts - task: generate:template vars: TEMPLATE: vanilla - task: generate:template vars: TEMPLATE: vanilla-ts - task: generate:template vars: TEMPLATE: react-swc - task: generate:template vars: TEMPLATE: react-swc-ts cmds: - task: reinstall-cli - echo "Generated templates" precommit: cmds: - go test ./... - task: format # - task: docs:update:api test:example:darwin: dir: 'examples/{{.DIR}}' platforms: - darwin cmds: - echo "Building example {{.DIR}}" - go mod tidy - go build -o "testbuild-{{.DIR}}{{exeExt}}" env: CGO_LDFLAGS: -framework UniformTypeIdentifiers -mmacosx-version-min=10.13 CGO_CFLAGS: -mmacosx-version-min=10.13 test:example:notdarwin: dir: 'examples/{{.DIR}}' platforms: - linux - windows cmds: - echo "Building example {{.DIR}}" - go mod tidy - go build -o "testbuild-{{.DIR}}{{exeExt}}" test:examples: summary: Builds the examples dir: examples vars: EXAMPLEDIRS: | binding build clipboard contextmenus dialogs drag-n-drop environment events frameless hide-window ignore-mouse keybindings menu plain raw-message screen services show-macos-toolbar systray video window window-api wml cmds: - for: { var: EXAMPLEDIRS } task: test:example:darwin vars: DIR: "{{.ITEM}}" - for: { var: EXAMPLEDIRS } task: test:example:notdarwin vars: DIR: "{{.ITEM}}"