* [316-multi-bridge-conn] feat: use callback func for bridge response
* [316-multi-bridge-conn] feat: implement multiple session support
* split client handling portion into 'session'
* keep track of sessions by remote address (ip & port)
* notify each of the sessions anytime an event comes across the bus
* [316-multi-bridge-conn] chore: move bridge files to package
* [316-multi-bridge-conn] chore: remove deprecated Callback function
The Callback function is no longer needed for the operation of
the frontend callback since the ipc.Dispatch function now requires
a callback function to be provided as an argument.
This function can be a private function since it is passed by reference.
* [316-multi-bridge-conn] chore: make webview.Callback private
* [316-multi-bridge-conn] chore: remove unused injectCSS function
I believe a slightly better method of doing this might need to be devised
if it is needed in the future. I presume it should collect the values
into a cache and then inject it into each sesssion as it appears.
* [316-multi-bridge-conn] ensure wails:ready event is emitted
Event is only emitted for the first session created from the Bridge.
* [316-multi-bridge-conn] emit events for session lifecycle
Emit an event for each session started and ended.
* [316-multi-bridge-conn] fix: session handling fixes
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* [313-remote-conn] feat: compute wsURL based on window.location
* [313-remote-conn] feat: allow any host to connect to vue server
removing the 'host: "localhost"' specification causes the development
server to listen on all interfaces.
* [313-remote-conn] feat: allow any host to connect to angular dev server
* test: reinject tabs
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* feat: support close in bridge mode
* feat: WailsShutdown callback
Now handles proper shutdown through:
* runtime.Window.Close()
* Killing the main window
* Ctrl-C
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 official docs can be found at [https://wails.app](https://wails.app).
## Features
- Use standard Go libraries/frameworks for the backend
@@ -27,9 +31,6 @@ The traditional method of providing web interfaces to Go programs is via a built
- Powerful cli tool
- Multiplatform
## Project Status
Wails is currently in Beta. Please make sure you read the [Project Status](https://wails.app/project_status.html) if you are interested in using this project.
## Installation
@@ -46,19 +47,41 @@ Make sure you have the xcode command line tools installed. This can be done by r
Note: If you have successfully installed these dependencies on a different flavour of Linux, please consider submitting a PR.
`sudo yum install webkitgtk3-devel gtk3-devel`
_CentOS 6, 7_
#### Fedora
`sudo yum install webkit2gtk3-devel gtk3-devel`
_Fedora 29, 30_
#### VoidLinux & VoidLinux-musl
`xbps-install gtk+3-devel webkit2gtk-devel`
#### Gentoo
`sudo emerge gtk+:3 webkit-gtk`
### Windows
@@ -71,7 +94,7 @@ Windows requires gcc and related tooling. The recommended download is from [http
Installation is as simple as running the following command:
<pre style='color:white'>
go get github.com/wailsapp/wails/cmd/wails
go get -u github.com/wailsapp/wails/cmd/wails
</pre>
## Next Steps
@@ -103,8 +126,7 @@ And without [these people](CONTRIBUTORS.md), it wouldn't be what it is today. A
Special Mentions:
* [Bill Kennedy](https://twitter.com/goinggodotnet) - Go guru, encourager and all-round nice guy, whose infectious energy and inspiration powered me on when I had none left.
* [Mark Bates](https://github.com/markbates) - Creator of [Packr](https://github.com/gobuffalo/packr), inspiration for packing strategies which fed into some of the tooling.
* [Byron](https://github.com/bh90210) - At times, Byron has single handedly kept this project alive. Without his incredible input, we never would have got to v1.
This project was mainly coded to the following albums:
@@ -122,3 +144,6 @@ This project was mainly coded to the following albums:
* [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
* [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)
defaultError:=fmt.Errorf("unable to check libraries on distribution '%s'. Please ensure that the '%s' equivalent is installed",distroInfo.DistributorID,libraryName)
defaultError:=fmt.Errorf("unable to check libraries on distribution '%s'",distroInfo.Name)
logger.Yellow("Distribution '%s' is not currently supported, but we would love to!",distroInfo.DistributorID)
q:=fmt.Sprintf("Would you like to submit a request to support distribution '%s'?",distroInfo.DistributorID)
logger.Yellow("Distribution '%s' is not currently supported, but we would love to!",distroInfo.Name)
q:=fmt.Sprintf("Would you like to submit a request to support distribution '%s'?",distroInfo.Name)
result:=Prompt(q,"yes")
ifstrings.ToLower(result)!="yes"{
returndefaultError
}
title:=fmt.Sprintf("Support Distribution '%s'",distroInfo.DistributorID)
title:=fmt.Sprintf("Support Distribution '%s'",distroInfo.Name)
varstrstrings.Builder
@@ -205,16 +244,15 @@ func RequestSupportForDistribution(distroInfo *DistroInfo, libraryName string) e
str.WriteString(fmt.Sprintf("| Distribution ID | %s |\n",distroInfo.DistributorID))
str.WriteString(fmt.Sprintf("| Distribution ID | %s |\n",distroInfo.ID))
str.WriteString(fmt.Sprintf("| Distribution Name | %s |\n",distroInfo.Name))
str.WriteString(fmt.Sprintf("| Distribution Version | %s |\n",distroInfo.Release))
str.WriteString(fmt.Sprintf("| Discovered by | %s |\n",distroInfo.DiscoveredBy))
body:=fmt.Sprintf("**Description**\nDistribution '%s' is currently unsupported.\n\n**Further Information**\n\n%s\n\n*Please add any extra information here, EG: libraries that are needed to make the distribution work, or commands to install them*",distroInfo.DistributorID,str.String())
body:=fmt.Sprintf("**Description**\nDistribution '%s' is currently unsupported.\n\n**Further Information**\n\n%s\n\n*Please add any extra information here, EG: libraries that are needed to make the distribution work, or commands to install them*",distroInfo.ID,str.String())
t.Error("Should get nil for distribution 'unknown'")
}
}
funcTestDefaultRelease(t*testing.T){
varlinuxDB=NewLinuxDB()
result:=linuxDB.GetDistro("ubuntu")
ifresult==nil{
t.Error("Cannot get distro 'ubuntu'")
}
release:=result.GetRelease("default")
ifrelease==nil{
t.Error("Cannot get release 'default' for distro 'ubuntu'")
}
}
funcTestUnknownRelease(t*testing.T){
varlinuxDB=NewLinuxDB()
result:=linuxDB.GetDistro("ubuntu")
ifresult==nil{
t.Error("Cannot get distro 'ubuntu'")
}
release:=result.GetRelease("16.04")
ifrelease==nil{
t.Error("Failed to get release 'default' for unknown release version '16.04'")
}
ifrelease.Version!="default"{
t.Errorf("Got version '%s' instead of 'default' for unknown release version '16.04'",result.ID)
}
}
funcTestGetPrerequisites(t*testing.T){
varlinuxDB=NewLinuxDB()
result:=linuxDB.GetDistro("debian")
ifresult==nil{
t.Error("Cannot get distro 'debian'")
}
release:=result.GetRelease("default")
ifrelease==nil{
t.Error("Failed to get release 'default' for unknown release version '16.04'")
}
ifrelease.Version!="default"{
t.Errorf("Got version '%s' instead of 'default' for unknown release version '16.04'",result.ID)
}
ifrelease.Name!="Debian"{
t.Errorf("Got Release Name '%s' instead of 'debian' for unknown release version '16.04'",release.Name)
}
iflen(release.Programs)!=3{
t.Errorf("Expected %d programs for unknown release version '16.04'",len(release.Programs))
}
iflen(release.Libraries)!=2{
t.Errorf("Expected %d libraries for unknown release version '16.04'",len(release.Libraries))
}
}
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.