version: '3' tasks: go:mod:tidy: summary: Runs `go mod tidy` internal: true cmds: - go mod tidy install:frontend:deps: summary: Install frontend dependencies dir: frontend sources: - package.json - package-lock.json generates: - node_modules preconditions: - sh: npm version msg: "Looks like npm isn't installed. Npm is part of the Node installer: https://nodejs.org/en/download/" cmds: - npm install --legacy-peer-deps build:frontend: label: build:frontend (DEV={{.DEV}}) summary: Build the frontend project dir: frontend sources: - "**/*" - exclude: node_modules/**/* generates: - dist/**/* deps: - task: install:frontend:deps - task: generate:bindings vars: BUILD_FLAGS: ref: .BUILD_FLAGS cmds: - npm run {{.BUILD_COMMAND}} -q env: PRODUCTION: '{{if eq .DEV "true"}}false{{else}}true{{end}}' vars: BUILD_COMMAND: '{{if eq .DEV "true"}}build:dev{{else}}build{{end}}' generate:bindings: label: generate:bindings (BUILD_FLAGS={{.BUILD_FLAGS}}) summary: Generates bindings for the frontend deps: - task: go:mod:tidy sources: - "**/*.[jt]s" - exclude: frontend/**/* - frontend/bindings/**/* - "**/*.go" - go.mod - go.sum generates: - frontend/bindings/**/* cmds: - wails3 generate bindings -f '{{.BUILD_FLAGS}}' -clean=true -ts generate:icons: summary: Generates Windows `.ico` and Mac `.icns` files from an image dir: build sources: - "appicon.png" - "appicon.icon" generates: - "darwin/icons.icns" - "windows/icon.ico" cmds: - wails3 generate icons -input appicon.png -macfilename darwin/icons.icns -windowsfilename windows/icon.ico -iconcomposerinput appicon.icon -macassetdir darwin dev:frontend: summary: Runs the frontend in development mode dir: frontend deps: - task: install:frontend:deps cmds: - npm run dev -- --port {{.VITE_PORT}} update:build-assets: summary: Updates the build assets dir: build preconditions: - sh: '[ -n "{{.APP_NAME}}" ]' msg: "APP_NAME variable is required" cmds: - wails3 update build-assets -name "{{.APP_NAME}}" -binaryname "{{.APP_NAME}}" -config config.yml -dir .