mirror of
https://github.com/taigrr/wails.git
synced 2026-04-17 12:15:02 -07:00
Compare commits
6 Commits
v1.0.2-pre
...
v1.0.2-pre
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
030bd629df | ||
|
|
cad65f8f3f | ||
|
|
0c790bb08c | ||
|
|
fa1bc016fe | ||
|
|
5fc41949ae | ||
|
|
3d13368043 |
32
.github/workflows/latest-pre.yml
vendored
Normal file
32
.github/workflows/latest-pre.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
name: latest pre-release
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- '**-pre**'
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
build:
|
||||||
|
name: Test Build Latest Pre-Release
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, windows-latest, macOS-latest]
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Set up Go 1.12
|
||||||
|
uses: actions/setup-go@v1
|
||||||
|
with:
|
||||||
|
go-version: 1.12
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
|
- name: Get dependencies
|
||||||
|
run: |
|
||||||
|
go get -v -d ./...
|
||||||
|
- name: Build
|
||||||
|
run: go build -v ./cmd/wails
|
||||||
|
|
||||||
|
- name: Test
|
||||||
|
run: ./wails version
|
||||||
32
.github/workflows/pr.yml
vendored
Normal file
32
.github/workflows/pr.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
name: pr
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
build:
|
||||||
|
name: Test Build PR
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, windows-latest, macOS-latest]
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Set up Go 1.12
|
||||||
|
uses: actions/setup-go@v1
|
||||||
|
with:
|
||||||
|
go-version: 1.12
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
|
- name: Get dependencies
|
||||||
|
run: |
|
||||||
|
go get -v -d ./...
|
||||||
|
- name: Build
|
||||||
|
run: go build -v ./cmd/wails
|
||||||
|
|
||||||
|
- name: Test
|
||||||
|
run: ./wails version
|
||||||
34
.github/workflows/release.yml
vendored
Normal file
34
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: release
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
tags:
|
||||||
|
- '!**pre**'
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
build:
|
||||||
|
name: Test Build Latest Release
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, windows-latest, macOS-latest]
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Set up Go 1.12
|
||||||
|
uses: actions/setup-go@v1
|
||||||
|
with:
|
||||||
|
go-version: 1.12
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
|
- name: Get dependencies
|
||||||
|
run: |
|
||||||
|
go get -v -d ./...
|
||||||
|
- name: Build
|
||||||
|
run: go build -v ./cmd/wails
|
||||||
|
|
||||||
|
- name: Test
|
||||||
|
run: ./wails version
|
||||||
@@ -11,7 +11,8 @@
|
|||||||
<a href="https://app.fossa.io/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status"><img src="https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield"/></a>
|
<a href="https://app.fossa.io/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status"><img src="https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield"/></a>
|
||||||
<a href="https://houndci.com"><img src="https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg"/></a>
|
<a href="https://houndci.com"><img src="https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg"/></a>
|
||||||
<a href="https://github.com/avelino/awesome-go" rel="nofollow"><img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome"></a>
|
<a href="https://github.com/avelino/awesome-go" rel="nofollow"><img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome"></a>
|
||||||
<a href="https://dev.azure.com/leaanthony/Wails/_build/latest?definitionId=1&branchName=master" rel="nofollow"><img src="https://dev.azure.com/leaanthony/Wails/_apis/build/status/wailsapp.wails?branchName=master" alt="Pipelines"></a>
|
<a href="https://github.com/wailsapp/wails/workflows/release/badge.svg?branch=master" rel="nofollow"><img src="https://github.com/wailsapp/wails/workflows/release/badge.svg?branch=master" alt="Release Pipelines"></a>
|
||||||
|
<a href="https://github.com/wailsapp/wails/workflows/latest-pre/badge.svg?branch=masterr" rel="nofollow"><img src="https://github.com/wailsapp/wails/workflows/latest-pre/badge.svg?branch=master" alt="Pre-Release Pipelines"></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
The traditional method of providing web interfaces to Go programs is via a built-in web server. Wails offers a different approach: it provides the ability to wrap both Go code and a web frontend into a single binary. Tools are provided to make this easy for you by handling project creation, compilation and bundling. All you have to do is get creative!
|
The traditional method of providing web interfaces to Go programs is via a built-in web server. Wails offers a different approach: it provides the ability to wrap both Go code and a web frontend into a single binary. Tools are provided to make this easy for you by handling project creation, compilation and bundling. All you have to do is get creative!
|
||||||
|
|||||||
@@ -1,138 +0,0 @@
|
|||||||
# avoid double trigger by applying some rules
|
|
||||||
# start a pipeline when push to 'master' branch
|
|
||||||
trigger:
|
|
||||||
- master
|
|
||||||
# or when pull request on 'develop' branch
|
|
||||||
pr:
|
|
||||||
- develop
|
|
||||||
|
|
||||||
# for now there is only one stage 'Build'
|
|
||||||
# in the future we could use multistage strategy for releases
|
|
||||||
stages:
|
|
||||||
- stage: Build
|
|
||||||
|
|
||||||
# there are 3 jobs
|
|
||||||
# one for each os
|
|
||||||
jobs:
|
|
||||||
- deployment: Linux
|
|
||||||
displayName: Lin
|
|
||||||
variables:
|
|
||||||
GOPATH: '$(Agent.BuildDirectory)/gopath' # Go workspace path
|
|
||||||
GOROOT: '$(Agent.BuildDirectory)/go' # Go installation path
|
|
||||||
GOBIN: '$(GOPATH)/bin' # Go binaries path
|
|
||||||
GOMODULE: 'on'
|
|
||||||
modulePath: '$(Agent.BuildDirectory)/wails' # Path to the module's code
|
|
||||||
pool:
|
|
||||||
vmImage: 'Ubuntu-16.04'
|
|
||||||
environment: 'linux-dev'
|
|
||||||
strategy:
|
|
||||||
runOnce:
|
|
||||||
deploy:
|
|
||||||
steps:
|
|
||||||
- checkout: self # self represents the repo where the initial Pipelines YAML file was found
|
|
||||||
clean: true # whether to fetch clean each time
|
|
||||||
path: wails # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
|
|
||||||
# go version 1.12.7
|
|
||||||
- script: |
|
|
||||||
wget "https://storage.googleapis.com/golang/go1.12.7.linux-amd64.tar.gz" --output-document "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
|
|
||||||
tar -C '$(Agent.BuildDirectory)' -xzf "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
|
|
||||||
displayName: 'Install Go 1.12.7 Linux'
|
|
||||||
- script: |
|
|
||||||
mkdir -p '$(GOBIN)'
|
|
||||||
mkdir -p '$(GOPATH)/pkg'
|
|
||||||
mkdir -p '$(GOROOT)'
|
|
||||||
shopt -s extglob
|
|
||||||
shopt -s dotglob
|
|
||||||
echo '##vso[task.prependpath]$(GOBIN)'
|
|
||||||
echo '##vso[task.prependpath]$(GOROOT)/bin'
|
|
||||||
displayName: 'Set up the Go workspace'
|
|
||||||
- script: |
|
|
||||||
go version
|
|
||||||
go get -v -d ./...
|
|
||||||
cd cmd/wails
|
|
||||||
go install
|
|
||||||
workingDirectory: '$(modulePath)'
|
|
||||||
displayName: 'Get dependencies, then build'
|
|
||||||
- script: |
|
|
||||||
wails version
|
|
||||||
workingDirectory: '$(modulePath)'
|
|
||||||
displayName: 'Check we have output'
|
|
||||||
|
|
||||||
- deployment: Mac
|
|
||||||
displayName: Mac
|
|
||||||
variables:
|
|
||||||
GOPATH: '$(Agent.BuildDirectory)/gopath' # Go workspace path
|
|
||||||
GOROOT: '$(Agent.BuildDirectory)/go' # Go installation path
|
|
||||||
GOBIN: '$(GOPATH)/bin' # Go binaries path
|
|
||||||
GOMODULE: 'on'
|
|
||||||
modulePath: '$(Agent.BuildDirectory)/wails' # Path to the module's code
|
|
||||||
pool:
|
|
||||||
vmImage: 'macOS-10.14'
|
|
||||||
environment: 'mac-dev'
|
|
||||||
strategy:
|
|
||||||
runOnce:
|
|
||||||
deploy:
|
|
||||||
steps:
|
|
||||||
- checkout: self # self represents the repo where the initial Pipelines YAML file was found
|
|
||||||
clean: true # whether to fetch clean each time
|
|
||||||
path: wails # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
|
|
||||||
# go version 1.12.7
|
|
||||||
- script: |
|
|
||||||
wget "https://storage.googleapis.com/golang/go1.12.7.darwin-amd64.tar.gz" --output-document "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
|
|
||||||
tar -C '$(Agent.BuildDirectory)' -xzf "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
|
|
||||||
displayName: 'Install Go 1.12.7 Linux'
|
|
||||||
- script: |
|
|
||||||
mkdir -p '$(GOBIN)'
|
|
||||||
mkdir -p '$(GOPATH)/pkg'
|
|
||||||
mkdir -p '$(GOROOT)'
|
|
||||||
shopt -s extglob
|
|
||||||
shopt -s dotglob
|
|
||||||
echo '##vso[task.prependpath]$(GOBIN)'
|
|
||||||
echo '##vso[task.prependpath]$(GOROOT)/bin'
|
|
||||||
displayName: 'Set up the Go workspace'
|
|
||||||
- script: |
|
|
||||||
go version
|
|
||||||
go get -v -d ./...
|
|
||||||
cd cmd/wails
|
|
||||||
go install
|
|
||||||
workingDirectory: '$(modulePath)'
|
|
||||||
displayName: 'Get dependencies, then build'
|
|
||||||
- script: |
|
|
||||||
wails version
|
|
||||||
workingDirectory: '$(modulePath)'
|
|
||||||
displayName: 'Check we have output'
|
|
||||||
|
|
||||||
- deployment: Win
|
|
||||||
displayName: Win
|
|
||||||
variables:
|
|
||||||
GOMODULE: 'on'
|
|
||||||
modulePath: '$(Agent.BuildDirectory)/wails' # Path to the module's code
|
|
||||||
pool:
|
|
||||||
vmImage: 'windows-2019'
|
|
||||||
environment: 'win-dev'
|
|
||||||
strategy:
|
|
||||||
runOnce:
|
|
||||||
deploy:
|
|
||||||
steps:
|
|
||||||
- checkout: self # self represents the repo where the initial Pipelines YAML file was found
|
|
||||||
clean: true # whether to fetch clean each time
|
|
||||||
path: wails # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
|
|
||||||
# Go tool installer
|
|
||||||
# Find in cache or download a specific version of Go and add it to the PATH
|
|
||||||
- task: GoTool@0
|
|
||||||
inputs:
|
|
||||||
version: '1.12.7'
|
|
||||||
goPath: '$(Agent.BuildDirectory)/go'
|
|
||||||
goBin: '$(Agent.BuildDirectory)/go/bin'
|
|
||||||
displayName: 'Set up the Go workspace'
|
|
||||||
- script: |
|
|
||||||
go version
|
|
||||||
go get -v -d ./...
|
|
||||||
cd cmd/wails
|
|
||||||
go install
|
|
||||||
workingDirectory: '$(modulePath)'
|
|
||||||
displayName: 'Get dependencies, then build'
|
|
||||||
- script: |
|
|
||||||
wails version
|
|
||||||
workingDirectory: '$(Agent.BuildDirectory)/go/bin'
|
|
||||||
displayName: 'Check we have output'
|
|
||||||
@@ -1,138 +0,0 @@
|
|||||||
# avoid double trigger by applying some rules
|
|
||||||
# start a pipeline when push to 'master' branch
|
|
||||||
trigger:
|
|
||||||
- master
|
|
||||||
# or when pull request on 'develop' branch
|
|
||||||
pr:
|
|
||||||
- develop
|
|
||||||
|
|
||||||
# for now there is only one stage 'Build'
|
|
||||||
# in the future we could use multistage strategy for releases
|
|
||||||
stages:
|
|
||||||
- stage: Build
|
|
||||||
|
|
||||||
# there are 3 jobs
|
|
||||||
# one for each os
|
|
||||||
jobs:
|
|
||||||
- deployment: Linux
|
|
||||||
displayName: Lin
|
|
||||||
variables:
|
|
||||||
GOPATH: '$(Agent.BuildDirectory)/gopath' # Go workspace path
|
|
||||||
GOROOT: '$(Agent.BuildDirectory)/go' # Go installation path
|
|
||||||
GOBIN: '$(GOPATH)/bin' # Go binaries path
|
|
||||||
GOMODULE: 'on'
|
|
||||||
modulePath: '$(Agent.BuildDirectory)/wails' # Path to the module's code
|
|
||||||
pool:
|
|
||||||
vmImage: 'Ubuntu-16.04'
|
|
||||||
environment: 'linux-dev'
|
|
||||||
strategy:
|
|
||||||
runOnce:
|
|
||||||
deploy:
|
|
||||||
steps:
|
|
||||||
- checkout: self # self represents the repo where the initial Pipelines YAML file was found
|
|
||||||
clean: true # whether to fetch clean each time
|
|
||||||
path: wails # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
|
|
||||||
# go version 1.12.7
|
|
||||||
- script: |
|
|
||||||
wget "https://storage.googleapis.com/golang/go1.12.7.linux-amd64.tar.gz" --output-document "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
|
|
||||||
tar -C '$(Agent.BuildDirectory)' -xzf "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
|
|
||||||
displayName: 'Install Go 1.12.7 Linux'
|
|
||||||
- script: |
|
|
||||||
mkdir -p '$(GOBIN)'
|
|
||||||
mkdir -p '$(GOPATH)/pkg'
|
|
||||||
mkdir -p '$(GOROOT)'
|
|
||||||
shopt -s extglob
|
|
||||||
shopt -s dotglob
|
|
||||||
echo '##vso[task.prependpath]$(GOBIN)'
|
|
||||||
echo '##vso[task.prependpath]$(GOROOT)/bin'
|
|
||||||
displayName: 'Set up the Go workspace'
|
|
||||||
- script: |
|
|
||||||
go version
|
|
||||||
go get -v -d ./...
|
|
||||||
cd cmd/wails
|
|
||||||
go install
|
|
||||||
workingDirectory: '$(modulePath)'
|
|
||||||
displayName: 'Get dependencies, then build'
|
|
||||||
- script: |
|
|
||||||
wails version
|
|
||||||
workingDirectory: '$(modulePath)'
|
|
||||||
displayName: 'Check we have output'
|
|
||||||
|
|
||||||
- deployment: Mac
|
|
||||||
displayName: Mac
|
|
||||||
variables:
|
|
||||||
GOPATH: '$(Agent.BuildDirectory)/gopath' # Go workspace path
|
|
||||||
GOROOT: '$(Agent.BuildDirectory)/go' # Go installation path
|
|
||||||
GOBIN: '$(GOPATH)/bin' # Go binaries path
|
|
||||||
GOMODULE: 'on'
|
|
||||||
modulePath: '$(Agent.BuildDirectory)/wails' # Path to the module's code
|
|
||||||
pool:
|
|
||||||
vmImage: 'macOS-10.14'
|
|
||||||
environment: 'mac-dev'
|
|
||||||
strategy:
|
|
||||||
runOnce:
|
|
||||||
deploy:
|
|
||||||
steps:
|
|
||||||
- checkout: self # self represents the repo where the initial Pipelines YAML file was found
|
|
||||||
clean: true # whether to fetch clean each time
|
|
||||||
path: wails # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
|
|
||||||
# go version 1.12.7
|
|
||||||
- script: |
|
|
||||||
wget "https://storage.googleapis.com/golang/go1.12.7.darwin-amd64.tar.gz" --output-document "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
|
|
||||||
tar -C '$(Agent.BuildDirectory)' -xzf "$(Agent.BuildDirectory)/go1.12.7.tar.gz"
|
|
||||||
displayName: 'Install Go 1.12.7 Linux'
|
|
||||||
- script: |
|
|
||||||
mkdir -p '$(GOBIN)'
|
|
||||||
mkdir -p '$(GOPATH)/pkg'
|
|
||||||
mkdir -p '$(GOROOT)'
|
|
||||||
shopt -s extglob
|
|
||||||
shopt -s dotglob
|
|
||||||
echo '##vso[task.prependpath]$(GOBIN)'
|
|
||||||
echo '##vso[task.prependpath]$(GOROOT)/bin'
|
|
||||||
displayName: 'Set up the Go workspace'
|
|
||||||
- script: |
|
|
||||||
go version
|
|
||||||
go get -v -d ./...
|
|
||||||
cd cmd/wails
|
|
||||||
go install
|
|
||||||
workingDirectory: '$(modulePath)'
|
|
||||||
displayName: 'Get dependencies, then build'
|
|
||||||
- script: |
|
|
||||||
wails version
|
|
||||||
workingDirectory: '$(modulePath)'
|
|
||||||
displayName: 'Check we have output'
|
|
||||||
|
|
||||||
- deployment: Win
|
|
||||||
displayName: Win
|
|
||||||
variables:
|
|
||||||
GOMODULE: 'on'
|
|
||||||
modulePath: '$(Agent.BuildDirectory)/wails' # Path to the module's code
|
|
||||||
pool:
|
|
||||||
vmImage: 'windows-2019'
|
|
||||||
environment: 'win-dev'
|
|
||||||
strategy:
|
|
||||||
runOnce:
|
|
||||||
deploy:
|
|
||||||
steps:
|
|
||||||
- checkout: self # self represents the repo where the initial Pipelines YAML file was found
|
|
||||||
clean: true # whether to fetch clean each time
|
|
||||||
path: wails # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
|
|
||||||
# Go tool installer
|
|
||||||
# Find in cache or download a specific version of Go and add it to the PATH
|
|
||||||
- task: GoTool@0
|
|
||||||
inputs:
|
|
||||||
version: '1.12.7'
|
|
||||||
goPath: '$(Agent.BuildDirectory)/go'
|
|
||||||
goBin: '$(Agent.BuildDirectory)/go/bin'
|
|
||||||
displayName: 'Set up the Go workspace'
|
|
||||||
- script: |
|
|
||||||
go version
|
|
||||||
go get -v -d ./...
|
|
||||||
cd cmd/wails
|
|
||||||
go install
|
|
||||||
workingDirectory: '$(modulePath)'
|
|
||||||
displayName: 'Get dependencies, then build'
|
|
||||||
- script: |
|
|
||||||
wails version
|
|
||||||
workingDirectory: '$(Agent.BuildDirectory)/go/bin'
|
|
||||||
displayName: 'Check we have output'
|
|
||||||
78
cmd/gomod.go
Normal file
78
cmd/gomod.go
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"path/filepath"
|
||||||
|
"regexp"
|
||||||
|
|
||||||
|
"github.com/Masterminds/semver"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetWailsVersion() (*semver.Version, error) {
|
||||||
|
var FS = NewFSHelper()
|
||||||
|
var result *semver.Version
|
||||||
|
|
||||||
|
// Load file
|
||||||
|
var err error
|
||||||
|
goModFile, err := filepath.Abs(filepath.Join(".", "go.mod"))
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("Unable to load go.mod at %s", goModFile)
|
||||||
|
}
|
||||||
|
goMod, err := FS.LoadAsString(goModFile)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("Unable to load go.mod")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find wails version
|
||||||
|
versionRegexp := regexp.MustCompile(`.*github.com/wailsapp/wails.*(v\d+.\d+.\d+(?:-pre\d+)?)`)
|
||||||
|
versions := versionRegexp.FindStringSubmatch(goMod)
|
||||||
|
|
||||||
|
if len(versions) != 2 {
|
||||||
|
return nil, fmt.Errorf("Unable to determine Wails version")
|
||||||
|
}
|
||||||
|
|
||||||
|
version := versions[1]
|
||||||
|
result, err = semver.NewVersion(version)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("Unable to parse Wails version: %s", version)
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetCurrentVersion() (*semver.Version, error) {
|
||||||
|
result, err := semver.NewVersion(Version)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("Unable to parse Wails version: %s", Version)
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func GoModOutOfSync() (bool, error) {
|
||||||
|
gomodversion, err := GetWailsVersion()
|
||||||
|
if err != nil {
|
||||||
|
return true, err
|
||||||
|
}
|
||||||
|
currentVersion, err := GetCurrentVersion()
|
||||||
|
if err != nil {
|
||||||
|
return true, err
|
||||||
|
}
|
||||||
|
result := !currentVersion.Equal(gomodversion)
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateGoModVersion() error {
|
||||||
|
currentVersion, err := GetCurrentVersion()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
currentVersionString := currentVersion.String()
|
||||||
|
|
||||||
|
requireLine := "-require=github.com/wailsapp/wails@v" + currentVersionString
|
||||||
|
|
||||||
|
// Issue: go mod edit -require=github.com/wailsapp/wails@1.0.2-pre5
|
||||||
|
helper := NewProgramHelper()
|
||||||
|
command := []string{"go", "mod", "edit", requireLine}
|
||||||
|
return helper.RunCommandArray(command)
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
// Version - Wails version
|
// Version - Wails version
|
||||||
const Version = "v1.0.2-pre5"
|
const Version = "v1.0.2-pre7"
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"regexp"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/Masterminds/semver"
|
"github.com/Masterminds/semver"
|
||||||
@@ -183,35 +182,13 @@ func checkProjectDirectory() error {
|
|||||||
|
|
||||||
func getWailsVersion() (*semver.Version, error) {
|
func getWailsVersion() (*semver.Version, error) {
|
||||||
checkSpinner.Start("Get Wails Version")
|
checkSpinner.Start("Get Wails Version")
|
||||||
var result *semver.Version
|
|
||||||
|
|
||||||
// Load file
|
result, err := cmd.GetWailsVersion()
|
||||||
var err error
|
|
||||||
goModFile, err = filepath.Abs(filepath.Join(".", "go.mod"))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
checkSpinner.Error()
|
checkSpinner.Error(err.Error())
|
||||||
return nil, fmt.Errorf("Unable to load go.mod at %s", goModFile)
|
return nil, err
|
||||||
}
|
}
|
||||||
goMod, err = migrateFS.LoadAsString(goModFile)
|
|
||||||
if err != nil {
|
|
||||||
checkSpinner.Error()
|
|
||||||
return nil, fmt.Errorf("Unable to load go.mod")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Find wails version
|
|
||||||
versionRegexp := regexp.MustCompile(`.*github.com/wailsapp/wails.*(v\d+.\d+.\d+)`)
|
|
||||||
versions := versionRegexp.FindStringSubmatch(goMod)
|
|
||||||
|
|
||||||
if len(versions) != 2 {
|
|
||||||
return nil, fmt.Errorf("Unable to determine Wails version")
|
|
||||||
}
|
|
||||||
|
|
||||||
version := versions[1]
|
|
||||||
result, err = semver.NewVersion(version)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("Unable to parse Wails version: %s", version)
|
|
||||||
}
|
|
||||||
checkSpinner.Success("Found Wails Version: " + version)
|
|
||||||
return result, nil
|
return result, nil
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,6 +106,27 @@ func init() {
|
|||||||
projectOptions.SetTypescriptDefsFilename(typescriptFilename)
|
projectOptions.SetTypescriptDefsFilename(typescriptFilename)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update go.mod if it is out of sync with current version
|
||||||
|
outofsync, err := cmd.GoModOutOfSync()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
gomodVersion, err := cmd.GetWailsVersion()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if outofsync {
|
||||||
|
syncMessage := fmt.Sprintf("Updating go.mod (Wails version %s => %s)", gomodVersion, cmd.Version)
|
||||||
|
buildSpinner := spinner.NewSpinner(syncMessage)
|
||||||
|
buildSpinner.Start()
|
||||||
|
err := cmd.UpdateGoModVersion()
|
||||||
|
if err != nil {
|
||||||
|
buildSpinner.Error(err.Error())
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
buildSpinner.Success()
|
||||||
|
}
|
||||||
|
|
||||||
err = cmd.BuildApplication(projectOptions.BinaryName, forceRebuild, buildMode, packageApp, projectOptions)
|
err = cmd.BuildApplication(projectOptions.BinaryName, forceRebuild, buildMode, packageApp, projectOptions)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -32,4 +32,4 @@ require (
|
|||||||
gopkg.in/yaml.v3 v3.0.0-20190709130402-674ba3eaed22
|
gopkg.in/yaml.v3 v3.0.0-20190709130402-674ba3eaed22
|
||||||
)
|
)
|
||||||
|
|
||||||
go 1.13
|
go 1.12
|
||||||
|
|||||||
@@ -114,6 +114,7 @@ func (b *Manager) generateTypescriptDefinitions() error {
|
|||||||
var output strings.Builder
|
var output strings.Builder
|
||||||
|
|
||||||
for structname, methodList := range b.structList {
|
for structname, methodList := range b.structList {
|
||||||
|
structname = strings.SplitN(structname, ".", 2)[1]
|
||||||
output.WriteString(fmt.Sprintf("Interface %s {\n", structname))
|
output.WriteString(fmt.Sprintf("Interface %s {\n", structname))
|
||||||
for _, method := range methodList {
|
for _, method := range methodList {
|
||||||
output.WriteString(fmt.Sprintf("\t%s: (...args : any[]) => Promise\n", method))
|
output.WriteString(fmt.Sprintf("\t%s: (...args : any[]) => Promise\n", method))
|
||||||
@@ -125,6 +126,7 @@ func (b *Manager) generateTypescriptDefinitions() error {
|
|||||||
output.WriteString("Interface Backend {\n")
|
output.WriteString("Interface Backend {\n")
|
||||||
|
|
||||||
for structname := range b.structList {
|
for structname := range b.structList {
|
||||||
|
structname = strings.SplitN(structname, ".", 2)[1]
|
||||||
output.WriteString(fmt.Sprintf("\t%[1]s: %[1]s\n", structname))
|
output.WriteString(fmt.Sprintf("\t%[1]s: %[1]s\n", structname))
|
||||||
}
|
}
|
||||||
output.WriteString("}\n")
|
output.WriteString("}\n")
|
||||||
|
|||||||
Reference in New Issue
Block a user