Compare commits

...

65 Commits

Author SHA1 Message Date
Lea Anthony 2729081f2c [v2] v2.0.0-beta.8 2021-10-09 07:57:23 +11:00
Lea Anthony cad1317fc8 [v2] Tags passthrough for wails generate module 2021-10-09 07:56:19 +11:00
Lea Anthony 1368c20029 [website] v2.0.0-beta.7 2021-10-09 00:06:39 +11:00
Lea Anthony 0acfdd1516 [website] v2.0.0-beta.6 2021-10-09 00:03:35 +11:00
Lea Anthony 212a20626a [website] Update go webview 2021-10-09 00:02:53 +11:00
Lea Anthony 722ecc969b [website] Update docs to v2.0.0-beta.5 2021-10-08 20:27:10 +11:00
Lea Anthony 078145c030 [v2] v2.0.0-beta.5 2021-10-08 19:54:48 +11:00
Lea Anthony 3765c8fb57 [v2] Auto update wails version in projects in dev mode 2021-10-08 19:53:46 +11:00
Lea Anthony 10ac38c650 [v2] update go build url 2021-10-08 19:51:51 +11:00
Lea Anthony a16e41f813 [v2] Tidy up frontend 2021-10-07 21:04:33 +11:00
Lea Anthony 1bd3deb39f Merge pull request #859 from marktohark/master
PutAreBrowserAcceleratorKeysEnabled => false
2021-10-07 21:02:27 +11:00
unknown be5f7ceb0e uncomment PostMessage 2021-10-07 17:34:06 +08:00
Lea Anthony 6943b657c9 [v2] Fix error messages in dev mode 2021-10-07 18:56:53 +11:00
unknown a148c67df0 don't hook any AcceleratorKey in callback 2021-10-07 14:35:14 +08:00
unknown 69297667c1 PutAreBrowserAcceleratorKeysEnabled => false 2021-10-07 14:28:52 +08:00
Lea Anthony 1ae9469e90 [v2] Fix bindings build tags 2021-10-06 20:36:31 +11:00
Lea Anthony d597d8e1c9 [v2] Fix bindings build tags 2021-10-06 20:36:15 +11:00
Lea Anthony d32152ed84 [website] Add sponsor 2021-10-06 20:36:15 +11:00
Lea Anthony d28a7e8987 [v2] Run go mod tidy first to ensure deps are up to date 2021-10-06 20:36:15 +11:00
Lea Anthony ef362a746a Merge pull request #849 from marktohark/filter-execjs-json
add template.JSEscapeString to ensure ExecJs normal execution
2021-10-06 20:13:19 +11:00
Lea Anthony c16c95673e Merge pull request #855 from wailsapp/dependabot/go_modules/github.com/gorilla/websocket-1.4.1
Bump github.com/gorilla/websocket from 1.4.0 to 1.4.1
2021-10-06 07:19:52 +11:00
dependabot[bot] d426fc46b5 Bump github.com/gorilla/websocket from 1.4.0 to 1.4.1
Bumps [github.com/gorilla/websocket](https://github.com/gorilla/websocket) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/gorilla/websocket/releases)
- [Commits](https://github.com/gorilla/websocket/compare/v1.4.0...v1.4.1)

---
updated-dependencies:
- dependency-name: github.com/gorilla/websocket
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-05 18:12:23 +00:00
Lea Anthony 0efeed4d7f Merge pull request #852 from misitebao/synchronize-chinese-documents
feat(website): synchronize chinese documents
2021-10-06 05:10:38 +11:00
misitebao a11a75fa12 feat(website): correct and optimize documents 2021-10-05 22:26:34 +08:00
misitebao 2d551cd019 feat(website): synchronize showcase 2021-10-05 22:26:34 +08:00
misitebao 37259b8adb feat(website): synchronize chinese documents 2021-10-05 22:26:33 +08:00
misitebao d5cfcc80f7 config(website): update dependency configuration file 2021-10-05 22:26:33 +08:00
misitebao 25564b7211 ci: add scripts for automatic deployment of mirrored websites 2021-10-05 22:26:32 +08:00
Lea Anthony 661b24cfa2 Update Sponsors 2021-10-05 23:34:04 +11:00
Lea Anthony 75f703465a [v2] Generate module command. Updated wails dev 2021-10-05 22:27:12 +11:00
unknown 9949420639 add template.JSEscapeString to ensure ExecJs normal execution 2021-10-05 09:45:36 +08:00
Lea Anthony 9e347bf71f [v2] Generate ipcdev.js and runtimedev.js 2021-10-04 19:58:46 +11:00
Lea Anthony 829fd8616b [v2] Make ipc.js cross-platform 2021-10-04 19:42:22 +11:00
Lea Anthony ae980d48fd [v2] Fix connection delay for websockets 2021-10-04 17:10:46 +11:00
Lea Anthony ba9e64f53a Merge pull request #848 from codydbentley/refactor-dev-command
Refactored `wails dev` command:
2021-10-04 17:10:26 +11:00
Lea Anthony b15d98b555 [v2] Rename noautoinjectbindings -> noautoinjectipc 2021-10-04 16:53:27 +11:00
Cody Bentley bdda454f69 Refactored wails dev command:
- added `devFlags` data structure for managing flags
- created `defaultDevFlags()` for generating default `devFlags` struct
- created `loadAndMergeProjectConfig()` to consolidate wails.json interaction
- re-arranged some variable creation and logic to put related pieces together
- consolidated `frontend:dev` handling to `runFrontendDevCommand()`
- added `generateBuildOptions()` for readability
- removed unused `passthruArgs` slice
- consolidated `restartApp()` call signature, removed unused `firstRun` argument
- fixed browser open option still using hard-coded default value, switched to recently added const `defaultDevServerURL`
- removed unnecessary `projectDir` variable (it's identical to `cwd` variable)
- consolidated watcher init to `initialiseWatcher()` which returns a deferable closer
- moved the main watch loop to `doWatcherLoop()`
- moved new deBounce flag handling to `loadAndMergeProjectConfig()`
2021-10-03 23:01:42 -06:00
Lea Anthony a59d01ddb9 [v2] Fix killing dev command on Windows 2021-10-03 22:19:40 +11:00
Lea Anthony 27f8df2b31 [v2] Support "frontend:dev" command 2021-10-03 21:29:59 +11:00
Lea Anthony 1b28f69236 [v2] Fix -devserverurl flag 2021-10-03 16:44:37 +11:00
Lea Anthony 7572b64bec [v2] Add -devserverurl flag 2021-10-03 15:07:10 +11:00
Lea Anthony f6b83b0933 [v2] New -debounce flag to configure debounce time of dev server 2021-10-03 14:04:05 +11:00
Lea Anthony a51ab25e2c Merge pull request #845 from codydbentley/add-new-templates
Added two new Vue3 TS templates to website
2021-10-03 13:33:57 +11:00
Lea Anthony aeaaccb942 Merge pull request #846 from codydbentley/fix-template-generator
Fixed base NEXTSTEPS and README in v2 template generator
2021-10-03 12:36:20 +11:00
Cody Bentley 4bf3eb303b Fixed base NEXTSTEPS and README in v2 template generator 2021-10-02 17:29:43 -06:00
Cody Bentley b5437ed1b5 Added two new Vue3 TS templates to website 2021-10-02 17:27:07 -06:00
Lea Anthony e2e752dd06 [v2] Fix timing bug 2021-10-02 19:55:49 +10:00
Lea Anthony 9dc2caecf0 [website] Rename heading 2021-10-02 14:27:06 +10:00
Lea Anthony b0da974a7d [v2] v2.0.0-beta.4 2021-10-02 14:16:40 +10:00
Lea Anthony b4dc8c252a [v2] update now uses go install 2021-10-02 14:14:07 +10:00
Lea Anthony afb1d12c3b [v2] Add meta tag to control script injection behaviour 2021-10-02 14:04:59 +10:00
Lea Anthony 7a0cb428f2 Merge pull request #840 from codydbentley/fix-missing-comma-in-bindings
Fixed missing comma that breaks bindings with more than one package
2021-09-30 19:28:56 +10:00
Cody Bentley e6a89790e3 Fixed missing comma that would break bindings when more than one package exists 2021-09-29 22:04:28 -06:00
Lea Anthony daede02c16 Merge pull request #776 from wailsapp/dependabot/npm_and_yarn/runtime/js/runtime/path-parse-1.0.7
Bump path-parse from 1.0.6 to 1.0.7 in /runtime/js/runtime
2021-09-30 08:40:10 +10:00
Lea Anthony 417895f40b Merge pull request #826 from wailsapp/dependabot/npm_and_yarn/website/prismjs-1.25.0
Bump prismjs from 1.24.1 to 1.25.0 in /website
2021-09-30 08:39:41 +10:00
Lea Anthony 6bc26aa669 [v2] Add .gitignore to templates 2021-09-30 08:20:32 +10:00
Lea Anthony a641deb388 [v2] Devserver listen to localhost 2021-09-30 08:00:50 +10:00
Lea Anthony e013ce14a1 [v2] fix tags in dev mode 2021-09-30 07:11:49 +10:00
Lea Anthony 9930ee10da Revert "Corrected obsolete 'text/javascript' mime to 'application/javascript'"
This reverts commit 23c1ebfac9.
2021-09-30 07:07:13 +10:00
Lea Anthony de6c57771e [website] update sponsors 2021-09-30 07:01:30 +10:00
Lea Anthony c8359b0743 [v2] sync go.sum 2021-09-30 07:01:12 +10:00
Lea Anthony 12b7cf09e6 [v2] Support Goland IDE 2021-09-30 07:00:46 +10:00
Lea Anthony 28af34f978 [website] update installation instructions to v2.0.0-beta.3 2021-09-29 20:39:58 +10:00
dependabot[bot] 7311868636 Bump prismjs from 1.24.1 to 1.25.0 in /website
Bumps [prismjs](https://github.com/PrismJS/prism) from 1.24.1 to 1.25.0.
- [Release notes](https://github.com/PrismJS/prism/releases)
- [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md)
- [Commits](https://github.com/PrismJS/prism/compare/v1.24.1...v1.25.0)

---
updated-dependencies:
- dependency-name: prismjs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-27 09:37:34 +00:00
dependabot[bot] ed4b74f01b Bump path-parse from 1.0.6 to 1.0.7 in /runtime/js/runtime
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-12 21:19:10 +00:00
103 changed files with 17747 additions and 837 deletions
@@ -0,0 +1,35 @@
name: Deploy mirror | 部署镜像
on:
push:
branches: [master]
# pull_request:
# branches: [ main ]
jobs:
build-and-deploy:
name: Automatic deployment | 自动部署
runs-on: ubuntu-latest
if: github.repository == 'misitebao/wails'
steps:
- name: Checkout | 切换到部署分支
uses: actions/checkout@v2
with:
ref: "master"
submodules: true
fetch-depth: 0
- name: Build Site | 构建网站
run: |
cd website &&
npm install && npm run build
- name: Deploy to Server | 部署到服务器
uses: hengkx/ssh-deploy@v1.0.1
with:
HOST: ${{ secrets.DEPLOY_HOST }}
USERNAME: ${{ secrets.DEPLOY_HOST_USER }}
PASSWORD: ${{ secrets.DEPLOY_HOST_PASSWORD }}
SOURCE: "website/build"
TARGET: "/www/wwwroot/wails.top"
+10
View File
@@ -119,6 +119,16 @@ This project is supported by these kind people / companies:
<a href="https://github.com/marcus-crane" style="width:50px;border-radius: 50%">
<img src="https://github.com/marcus-crane.png?size=50" width="50" style="border-radius: 50%"/>
</a>
<a href="https://github.com/codydbentley" style="width:65px">
<img src="https://github.com/codydbentley.png?size=65" width="65"/>
</a>
<a href="https://github.com/bbergshaven" style="width:45px">
<img src="https://github.com/bbergshaven.png?size=45" width="45"/>
</a>
<a href="https://github.com/Gilgames000" style="width:45px">
<img src="https://github.com/Gilgames000.png?size=45" width="45"/>
</a>
<span id="nav-5"></span>
+1 -1
View File
@@ -5,7 +5,7 @@ require (
github.com/abadojack/whatlanggo v1.0.1
github.com/fatih/color v1.7.0
github.com/go-playground/colors v1.2.0
github.com/gorilla/websocket v1.4.0
github.com/gorilla/websocket v1.4.1
github.com/jackmordaunt/icns v1.0.0
github.com/kennygrant/sanitize v1.2.4
github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
+2 -2
View File
@@ -11,8 +11,8 @@ github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/go-playground/colors v1.2.0 h1:0EdjTXKrr2g1L/LQTYtIqabeHpZuGZz1U4osS1T8+5M=
github.com/go-playground/colors v1.2.0/go.mod h1:miw1R2JIE19cclPxsXqNdzLZsk4DP4iF+m88bRc7kfM=
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174 h1:WlZsjVhE8Af9IcZDGgJGQpNflI3+MJSBhsgT5PCtzBQ=
github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A=
github.com/jackmordaunt/icns v1.0.0 h1:RYSxplerf/l/DUd09AHtITwckkv/mqjVv4DjYdPmAMQ=
+3 -3
View File
@@ -260,9 +260,9 @@
}
},
"path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
"path-type": {
File diff suppressed because it is too large Load Diff
@@ -6,8 +6,6 @@ import (
"github.com/wailsapp/wails/v2/cmd/wails/internal/commands/generate/template"
"github.com/leaanthony/clir"
"github.com/wailsapp/wails/v2/pkg/clilogger"
"github.com/wailsapp/wails/v2/pkg/parser"
)
// AddSubcommand adds the `generate` command for the Wails application
@@ -15,34 +13,11 @@ func AddSubcommand(app *clir.Cli, w io.Writer) error {
command := app.NewSubCommand("generate", "Code Generation Tools")
//AddModuleCommand(app, command, w)
err := AddModuleCommand(app, command, w)
if err != nil {
return err
}
template.AddSubCommand(app, command, w)
return nil
}
func logPackage(pkg *parser.Package, logger *clilogger.CLILogger) {
logger.Println("Processed Go package '" + pkg.Gopackage.Name + "' as '" + pkg.Name + "'")
for _, strct := range pkg.Structs() {
logger.Println("")
logger.Println(" Processed struct '" + strct.Name + "'")
if strct.IsBound {
for _, method := range strct.Methods {
logger.Println(" Bound method '" + method.Name + "'")
}
}
if strct.IsUsedAsData {
for _, field := range strct.Fields {
if !field.Ignored {
logger.Print(" Processed ")
if field.IsOptional {
logger.Print("optional ")
}
logger.Println("field '" + field.Name + "' as '" + field.JSName() + "'")
}
}
}
}
logger.Println("")
}
@@ -1,58 +1,57 @@
package generate
import (
"io"
"time"
"github.com/leaanthony/clir"
"github.com/wailsapp/wails/v2/pkg/clilogger"
"github.com/wailsapp/wails/v2/pkg/parser"
"github.com/wailsapp/wails/v2/cmd/wails/internal"
"github.com/wailsapp/wails/v2/internal/shell"
"io"
"os"
"path/filepath"
"runtime"
"strings"
)
func AddModuleCommand(app *clir.Cli, parent *clir.Command, w io.Writer) {
// AddModuleCommand adds the `module` subcommand for the `generate` command
func AddModuleCommand(app *clir.Cli, parent *clir.Command, w io.Writer) error {
// Backend API
backendAPI := parent.NewSubCommand("module", "Generates a JS module for the frontend to interface with the backend")
command := parent.NewSubCommand("module", "Generate wailsjs modules")
var tags string
command.StringFlag("tags", "tags to pass to Go compiler (quoted and space separated)", &tags)
// Quiet Init
quiet := false
backendAPI.BoolFlag("q", "Suppress output to console", &quiet)
command.Action(func() error {
backendAPI.Action(func() error {
filename := "wailsbindings"
if runtime.GOOS == "windows" {
filename += ".exe"
}
// go build -tags bindings -o bindings.exe
tempDir := os.TempDir()
filename = filepath.Join(tempDir, filename)
// Create logger
logger := clilogger.New(w)
logger.Mute(quiet)
app.PrintBanner()
logger.Print("Generating Javascript module for Go code...")
// Start Time
start := time.Now()
p, err := parser.GenerateWailsFrontendPackage()
cwd, err := os.Getwd()
if err != nil {
return err
}
logger.Println("done.")
logger.Println("")
elapsed := time.Since(start)
packages := p.Packages
// Print report
for _, pkg := range p.Packages {
if pkg.ShouldGenerate() {
logPackage(pkg, logger)
}
tagList := internal.ParseUserTags(tags)
tagList = append(tagList, "bindings")
_, _, err = shell.RunCommand(cwd, "go", "build", "-tags", strings.Join(tagList, ","), "-o", filename)
if err != nil {
return err
}
logger.Println("%d packages parsed in %s.", len(packages), elapsed)
_, _, err = shell.RunCommand(cwd, filename)
if err != nil {
return err
}
err = os.Remove(filename)
if err != nil {
return err
}
return nil
})
return nil
}
@@ -21,7 +21,7 @@ The next steps to complete the template are:
You can test your template by running this command:
`wails init -name test -t {{.TemplateDir}}`
`wails init -n test -t {{.TemplateDir}}`
### Checklist
@@ -12,5 +12,5 @@ To generate a platform native package, add the `-package` flag.
## Live Development
To run in live development mode, run `wails dev` in the project directory. In another terminal, go into the `frontend`
directory and run `npm run dev`. The frontend dev server will run on http://localhost:5000. Connect to this
directory and run `npm run dev`. The frontend dev server will run on http://localhost:34115. Connect to this
in your browser and connect to your application.
@@ -5,6 +5,9 @@ import (
"github.com/flytam/filenamify"
"github.com/leaanthony/slicer"
"io"
"os"
"os/exec"
"path/filepath"
"strings"
"time"
@@ -78,7 +81,7 @@ func AddSubcommand(app *clir.Cli, w io.Writer) error {
}
// Validate IDE option
supportedIDEs := slicer.String([]string{"vscode"})
supportedIDEs := slicer.String([]string{"vscode", "goland"})
ide = strings.ToLower(ide)
if ide != "" {
if !supportedIDEs.Contains(ide) {
@@ -101,6 +104,16 @@ func AddSubcommand(app *clir.Cli, w io.Writer) error {
if err != nil {
return err
}
goBinary, err := exec.LookPath("go")
if err != nil {
return fmt.Errorf("unable to find Go compiler. Please download and install Go: https://golang.org/dl/")
}
// Get base path and convert to forward slashes
goPath := filepath.ToSlash(filepath.Dir(goBinary))
// Trim bin directory
goSDKPath := strings.TrimSuffix(goPath, "/bin")
// Create Template Options
options := &templates.Options{
ProjectName: projectName,
@@ -111,19 +124,20 @@ func AddSubcommand(app *clir.Cli, w io.Writer) error {
InitGit: initGit,
ProjectNameFilename: projectFilename,
WailsVersion: app.Version(),
GoSDKPath: goSDKPath,
}
// Try to discover author details from git config
findAuthorDetails(options)
return initProject(options)
return initProject(options, quiet)
})
return nil
}
// initProject is our main init command
func initProject(options *templates.Options) error {
func initProject(options *templates.Options, quiet bool) error {
// Start Time
start := time.Now()
@@ -140,6 +154,19 @@ func initProject(options *templates.Options) error {
return err
}
// Run `go mod tidy` to ensure `go.sum` is up to date
cmd := exec.Command("go", "mod", "tidy")
cmd.Dir = options.TargetDir
cmd.Stderr = os.Stderr
if !quiet {
println("")
cmd.Stdout = os.Stdout
}
err = cmd.Run()
if err != nil {
return err
}
if options.InitGit {
err = initGit(options)
if err != nil {
@@ -147,6 +174,10 @@ func initProject(options *templates.Options) error {
}
}
if quiet {
return nil
}
// Output stats
elapsed := time.Since(start)
options.Logger.Println("")
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git"/>
</component>
</project>
@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="ALL"/>
</component>
<component name="GOROOT" url="file://{{.GoSDKPath}}"/>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$"/>
</component>
<component name="GoLibraries">
<option name="indexEntireGoPath" value="false"/>
</component>
<component name="ProjectId" id="wails-{{.ProjectName}}"/>
<component name="ProjectLevelVcsManager" settingsEditedManually="true"/>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true"/>
<option name="showLibraryContents" value="true"/>
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true"/>
<property name="RunOnceActivity.ShowReadmeOnStart" value="true"/>
<property name="WebServerToolWindowFactoryState" value="false"/>
<property name="com.intellij.ide.scratch.LRUPopupBuilder$1/New Scratch File" value="TEXT"/>
<property name="go.formatter.settings.were.checked" value="true"/>
<property name="go.import.settings.migrated" value="true"/>
<property name="go.modules.go.list.on.any.changes.was.set" value="true"/>
<property name="go.sdk.automatically.set" value="true"/>
<property name="go.tried.to.enable.integration.vgo.integrator" value="true"/>
<property name="last_opened_file_path" value="$PROJECT_DIR$"/>
<property name="settings.editor.selected.configurable"
value="reference.settingsdialog.IDE.editor.colors.Console Font"/>
</component>
<component name="RunManager" selected="Go Build.{{.ProjectName}} (dev)">>
<configuration name="{{.ProjectName}} (dev)" type="GoApplicationRunConfiguration" factoryName="Go Application">
<module name="{{.ProjectName}}"/>
<working_directory value="$PROJECT_DIR$"/>
<go_parameters value="-gcflags &quot;all=-N -l&quot; -tags dev -o {{.PathToDesktopBinary}}"/>
<useCustomBuildTags value="true"/>
<parameters value="-assetdir {{.AssetDir}}"/>
<envs>
<env name="CGO_ENABLED" value="&quot;{{.CGOEnabled}}&quot;"/>
</envs>
<kind value="DIRECTORY"/>
<directory value="$PROJECT_DIR$"/>
<filePath value="$PROJECT_DIR$"/>
<method v="2">
</method>
</configuration>
<configuration name="{{.ProjectName}} (production)" type="GoApplicationRunConfiguration"
factoryName="Go Application">
<module name="{{.ProjectName}}"/>
<working_directory value="$PROJECT_DIR$"/>
<go_parameters
value="-ldflags &quot;-w -s{{.WindowsFlags}}&quot; -tags desktop,production -o {{.PathToDesktopBinary}}"/>
<useCustomBuildTags value="true"/>
<envs>
<env name="CGO_ENABLED" value="&quot;{{.CGOEnabled}}&quot;"/>
</envs>
<kind value="DIRECTORY"/>
<directory value="$PROJECT_DIR$"/>
<filePath value="$PROJECT_DIR$"/>
<method v="2">
</method>
</configuration>
<list>
<item itemvalue="Go Build.{{.ProjectName}} (dev)"/>
<item itemvalue="Go Remote.Local"/>
</list>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0"
DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true"/>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3"/>
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State/>
</value>
</entry>
</map>
</option>
<option name="oldMeFiltersMigrated" value="true"/>
</component>
<component name="VgoProject">
<integration-enabled>true</integration-enabled>
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
</breakpoint-manager>
</component>
</project>
@@ -42,6 +42,11 @@ type Data struct {
AuthorEmail string
AuthorNameAndEmail string
WailsDirectory string
GoSDKPath string
AssetDir string
WindowsFlags string
CGOEnabled string
OutputFile string
}
// Options for installing a template
@@ -60,6 +65,10 @@ type Options struct {
IDE string
ProjectNameFilename string // The project name but as a valid filename
WailsVersion string
GoSDKPath string
WindowsFlags string
CGOEnabled string
OutputFile string
}
// Template holds data relating to a template
@@ -243,6 +252,7 @@ func Install(options *Options) (bool, *Template, error) {
BinaryName := filepath.Base(options.TargetDir)
NPMProjectName := strings.ToLower(strings.ReplaceAll(BinaryName, " ", ""))
localWailsDirectory := fs.RelativePath("../../../../../..")
templateData := &Data{
ProjectName: options.ProjectName,
BinaryName: filepath.Base(options.TargetDir),
@@ -251,6 +261,8 @@ func Install(options *Options) (bool, *Template, error) {
AuthorEmail: options.AuthorEmail,
AuthorName: options.AuthorName,
WailsVersion: options.WailsVersion,
GoSDKPath: options.GoSDKPath,
AssetDir: options.AssetDir,
}
// Create a formatted name and email combo.
@@ -262,6 +274,10 @@ func Install(options *Options) (bool, *Template, error) {
}
templateData.AuthorNameAndEmail = strings.TrimSpace(templateData.AuthorNameAndEmail)
installer.RenameFiles(map[string]string{
"gitignore.txt": ".gitignore",
})
// Extract the template
err = installer.Extract(options.TargetDir, templateData)
if err != nil {
@@ -330,14 +346,29 @@ func generateIDEFiles(options *Options) error {
return nil
}
type ideOptions struct {
name string
targetDir string
options *Options
renameFiles map[string]string
ignoredFiles []string
}
func generateGolandFiles(options *Options) error {
targetDir := filepath.Join(options.TargetDir, ".idea")
renameFiles := map[string]string{
"projectname.iml": options.ProjectNameFilename + ".iml",
"gitignore.txt": ".gitignore",
"name": ".name",
ideoptions := ideOptions{
name: "goland",
targetDir: filepath.Join(options.TargetDir, ".idea"),
options: options,
renameFiles: map[string]string{
"projectname.iml": options.ProjectNameFilename + ".iml",
"gitignore.txt": ".gitignore",
"name": ".name",
},
}
err := installIDEFiles("goland", targetDir, options, renameFiles)
if !options.InitGit {
ideoptions.ignoredFiles = []string{"vcs.xml"}
}
err := installIDEFiles(ideoptions)
if err != nil {
return errors.Wrap(err, "generating Goland IDE files")
}
@@ -346,13 +377,17 @@ func generateGolandFiles(options *Options) error {
}
func generateVSCodeFiles(options *Options) error {
targetDir := filepath.Join(options.TargetDir, ".vscode")
return installIDEFiles("vscode", targetDir, options, nil)
ideoptions := ideOptions{
name: "vscode",
targetDir: filepath.Join(options.TargetDir, ".vscode"),
options: options,
}
return installIDEFiles(ideoptions)
}
func installIDEFiles(ideName string, targetDir string, options *Options, renameFiles map[string]string) error {
source, err := debme.FS(ides, "ides/"+ideName)
func installIDEFiles(o ideOptions) error {
source, err := debme.FS(ides, "ides/"+o.name)
if err != nil {
return err
}
@@ -360,18 +395,22 @@ func installIDEFiles(ideName string, targetDir string, options *Options, renameF
// Use gosod to install the template
installer := gosod.New(source)
if renameFiles != nil {
installer.RenameFiles(renameFiles)
if o.renameFiles != nil {
installer.RenameFiles(o.renameFiles)
}
binaryName := filepath.Base(options.TargetDir)
for _, ignoreFile := range o.ignoredFiles {
installer.IgnoreFile(ignoreFile)
}
binaryName := filepath.Base(o.options.TargetDir)
if runtime.GOOS == "windows" {
// yay windows
binaryName += ".exe"
}
// Parse wails.json for assetdir
wailsJSONBytes, err := os.ReadFile(filepath.Join(options.TargetDir, "wails.json"))
wailsJSONBytes, err := os.ReadFile(filepath.Join(o.options.TargetDir, "wails.json"))
if err != nil {
return err
}
@@ -385,10 +424,16 @@ func installIDEFiles(ideName string, targetDir string, options *Options, renameF
return fmt.Errorf("Unable to find 'assetdir' in 'wails.json' ")
}
options.AssetDir = assetDir.(string)
options.PathToDesktopBinary = filepath.ToSlash(filepath.Join("build", "bin", binaryName))
o.options.AssetDir = assetDir.(string)
o.options.PathToDesktopBinary = filepath.ToSlash(filepath.Join("build", "bin", binaryName))
err = installer.Extract(targetDir, options)
o.options.WindowsFlags = ""
o.options.CGOEnabled = "1"
if runtime.GOOS == "windows" {
o.options.WindowsFlags = " -H windowsgui"
o.options.CGOEnabled = "0"
}
err = installer.Extract(o.targetDir, o.options)
if err != nil {
return err
}
@@ -0,0 +1,9 @@
# Wails bin directory
build/bin
# IDEs
.idea
.vscode
# The black hole that is...
node_modules
@@ -15,6 +15,7 @@ github.com/fasthttp/websocket v0.0.0-20200320073529-1554a54587ab h1:9e2joQGp642w
github.com/fasthttp/websocket v0.0.0-20200320073529-1554a54587ab/go.mod h1:smsv/h4PBEBaU0XDTY5UwJTpZv69fQ0FfcLJr21mA6Y=
github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
github.com/flytam/filenamify v1.0.0/go.mod h1:Dzf9kVycwcsBlr2ATg6uxjqiFgKGH+5SKFuhdeP5zu8=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/gabriel-vasile/mimetype v1.3.1 h1:qevA6c2MtE1RorlScnixeG0VA1H4xrXyhyX3oWBynNQ=
github.com/gabriel-vasile/mimetype v1.3.1/go.mod h1:fA8fi6KUiG7MgQQ+mEWotXoEOvmxRtOJlERCzSmRvr8=
@@ -76,7 +77,6 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/leaanthony/clir v1.0.4/go.mod h1:k/RBkdkFl18xkkACMCLt09bhiZnrGORoxmomeMvDpE0=
github.com/leaanthony/debme v1.1.1/go.mod h1:3V+sCm5tYAgQymvSOfYQ5Xx2JCr+OXiD9Jkw3otUjiA=
github.com/leaanthony/debme v1.2.1 h1:9Tgwf+kjcrbMQ4WnPcEIUcQuIZYqdWftzZkBr+i/oOc=
github.com/leaanthony/debme v1.2.1/go.mod h1:3V+sCm5tYAgQymvSOfYQ5Xx2JCr+OXiD9Jkw3otUjiA=
github.com/leaanthony/go-ansi-parser v1.0.1 h1:97v6c5kYppVsbScf4r/VZdXyQ21KQIfeQOk2DgKxGG4=
@@ -85,7 +85,7 @@ github.com/leaanthony/go-common-file-dialog v1.0.3 h1:O0uGjKnWtdEADGrkg+TyAAbZyl
github.com/leaanthony/go-common-file-dialog v1.0.3/go.mod h1:TGhEc9eSJgRsupZ+iH1ZgAOnEo9zp05cRH2j08RPrF0=
github.com/leaanthony/go-webview2 v0.0.0-20210928094513-a94a08b538bd h1:6m4zZ/esiByaDbzgdvDxjsOaIDgtuG1q2cyhjAi6uAg=
github.com/leaanthony/go-webview2 v0.0.0-20210928094513-a94a08b538bd/go.mod h1:lS5ds4bruPk9d7lzdF/OH31Z0YCerI6MmHNFGsWoUnM=
github.com/leaanthony/gosod v1.0.2/go.mod h1:W8RyeSFBXu7RpIxPGEJfW4moSyGGEjlJMLV25wEbAdU=
github.com/leaanthony/gosod v1.0.3/go.mod h1:BJ2J+oHsQIyIQpnLPjnqFGTMnOZXDbvWtRCSG7jGxs4=
github.com/leaanthony/idgen v1.0.0/go.mod h1:4nBZnt8ml/f/ic/EVQuLxuj817RccT2fyrUaZFxrcVA=
github.com/leaanthony/slicer v1.5.0 h1:aHYTN8xbCCLxJmkNKiLB6tgcMARl4eWmH9/F+S/0HtY=
github.com/leaanthony/slicer v1.5.0/go.mod h1:FwrApmf8gOrpzEWM2J/9Lh79tyq8KTX5AzRtwV7m4AY=
@@ -147,8 +147,8 @@ github.com/valyala/fasthttp v1.28.0/go.mod h1:cmWIqlu99AO/RKcp1HWaViTqc57FswJOfY
github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio=
github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8=
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
github.com/wailsapp/wails/v2 v2.0.0-beta.2 h1:T17fV+EsjPpl4ZWVOEJ94qkCLhBJ0L6qtLkp4eA9C5M=
github.com/wailsapp/wails/v2 v2.0.0-beta.2/go.mod h1:V1CwD423vqoHslofcQpZ49Q7H1eDIKFCS7paSVBBNLw=
github.com/wailsapp/wails/v2 v2.0.0-beta.3 h1:8vhBbnjpYDF6cCUwKadon7J/98UjcP1nrnptUl70Tfg=
github.com/wailsapp/wails/v2 v2.0.0-beta.3/go.mod h1:aku28riyHF2G5jmx/qtxjLWi7VwpTjhhX/HVLCptWFA=
github.com/wzshiming/ctc v1.2.3/go.mod h1:2tVAtIY7SUyraSk0JxvwmONNPFL4ARavPuEsg5+KA28=
github.com/wzshiming/winseq v0.0.0-20200112104235-db357dc107ae/go.mod h1:VTAq37rkGeV+WOybvZwjXiJOicICdpLCN8ifpISjK20=
github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0=
@@ -0,0 +1,9 @@
# Wails bin directory
build/bin
# IDEs
.idea
.vscode
# The black hole that is...
node_modules
@@ -15,6 +15,7 @@ github.com/fasthttp/websocket v0.0.0-20200320073529-1554a54587ab h1:9e2joQGp642w
github.com/fasthttp/websocket v0.0.0-20200320073529-1554a54587ab/go.mod h1:smsv/h4PBEBaU0XDTY5UwJTpZv69fQ0FfcLJr21mA6Y=
github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
github.com/flytam/filenamify v1.0.0/go.mod h1:Dzf9kVycwcsBlr2ATg6uxjqiFgKGH+5SKFuhdeP5zu8=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/gabriel-vasile/mimetype v1.3.1 h1:qevA6c2MtE1RorlScnixeG0VA1H4xrXyhyX3oWBynNQ=
github.com/gabriel-vasile/mimetype v1.3.1/go.mod h1:fA8fi6KUiG7MgQQ+mEWotXoEOvmxRtOJlERCzSmRvr8=
@@ -76,7 +77,6 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/leaanthony/clir v1.0.4/go.mod h1:k/RBkdkFl18xkkACMCLt09bhiZnrGORoxmomeMvDpE0=
github.com/leaanthony/debme v1.1.1/go.mod h1:3V+sCm5tYAgQymvSOfYQ5Xx2JCr+OXiD9Jkw3otUjiA=
github.com/leaanthony/debme v1.2.1 h1:9Tgwf+kjcrbMQ4WnPcEIUcQuIZYqdWftzZkBr+i/oOc=
github.com/leaanthony/debme v1.2.1/go.mod h1:3V+sCm5tYAgQymvSOfYQ5Xx2JCr+OXiD9Jkw3otUjiA=
github.com/leaanthony/go-ansi-parser v1.0.1 h1:97v6c5kYppVsbScf4r/VZdXyQ21KQIfeQOk2DgKxGG4=
@@ -85,7 +85,7 @@ github.com/leaanthony/go-common-file-dialog v1.0.3 h1:O0uGjKnWtdEADGrkg+TyAAbZyl
github.com/leaanthony/go-common-file-dialog v1.0.3/go.mod h1:TGhEc9eSJgRsupZ+iH1ZgAOnEo9zp05cRH2j08RPrF0=
github.com/leaanthony/go-webview2 v0.0.0-20210928094513-a94a08b538bd h1:6m4zZ/esiByaDbzgdvDxjsOaIDgtuG1q2cyhjAi6uAg=
github.com/leaanthony/go-webview2 v0.0.0-20210928094513-a94a08b538bd/go.mod h1:lS5ds4bruPk9d7lzdF/OH31Z0YCerI6MmHNFGsWoUnM=
github.com/leaanthony/gosod v1.0.2/go.mod h1:W8RyeSFBXu7RpIxPGEJfW4moSyGGEjlJMLV25wEbAdU=
github.com/leaanthony/gosod v1.0.3/go.mod h1:BJ2J+oHsQIyIQpnLPjnqFGTMnOZXDbvWtRCSG7jGxs4=
github.com/leaanthony/idgen v1.0.0/go.mod h1:4nBZnt8ml/f/ic/EVQuLxuj817RccT2fyrUaZFxrcVA=
github.com/leaanthony/slicer v1.5.0 h1:aHYTN8xbCCLxJmkNKiLB6tgcMARl4eWmH9/F+S/0HtY=
github.com/leaanthony/slicer v1.5.0/go.mod h1:FwrApmf8gOrpzEWM2J/9Lh79tyq8KTX5AzRtwV7m4AY=
@@ -147,8 +147,8 @@ github.com/valyala/fasthttp v1.28.0/go.mod h1:cmWIqlu99AO/RKcp1HWaViTqc57FswJOfY
github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio=
github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8=
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
github.com/wailsapp/wails/v2 v2.0.0-beta.2 h1:T17fV+EsjPpl4ZWVOEJ94qkCLhBJ0L6qtLkp4eA9C5M=
github.com/wailsapp/wails/v2 v2.0.0-beta.2/go.mod h1:V1CwD423vqoHslofcQpZ49Q7H1eDIKFCS7paSVBBNLw=
github.com/wailsapp/wails/v2 v2.0.0-beta.3 h1:8vhBbnjpYDF6cCUwKadon7J/98UjcP1nrnptUl70Tfg=
github.com/wailsapp/wails/v2 v2.0.0-beta.3/go.mod h1:aku28riyHF2G5jmx/qtxjLWi7VwpTjhhX/HVLCptWFA=
github.com/wzshiming/ctc v1.2.3/go.mod h1:2tVAtIY7SUyraSk0JxvwmONNPFL4ARavPuEsg5+KA28=
github.com/wzshiming/winseq v0.0.0-20200112104235-db357dc107ae/go.mod h1:VTAq37rkGeV+WOybvZwjXiJOicICdpLCN8ifpISjK20=
github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0=
@@ -151,14 +151,16 @@ func updateToVersion(logger *clilogger.CLILogger, targetVersion *github.Semantic
log.Fatal("Cannot find home directory! Please file a bug report!")
}
sout, serr, err := shell.RunCommand(homeDir, "go", "get", "github.com/wailsapp/wails/v2/cmd/wails@"+desiredVersion)
sout, serr, err := shell.RunCommand(homeDir, "go", "install", "github.com/wailsapp/wails/v2/cmd/wails@"+desiredVersion)
if err != nil {
logger.Println("Failed.")
logger.Println(sout + `\n` + serr)
return err
}
fmt.Println()
logger.Println("\n")
logger.Println("Wails CLI updated to " + desiredVersion)
logger.Println("Make sure you update your project go.mod file to use " + desiredVersion + ":")
logger.Println(" require github.com/wailsapp/wails/v2 " + desiredVersion)
return nil
}

Some files were not shown because too many files have changed in this diff Show More