mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 11:40:56 +08:00
Yaml bug (#207)
* test: azure pipeline * fix: azure pipeline yaml * feat: elementary support * feat: opensuse support * fix: 0_setup.go line 27 * fix: 0_setup.go line 27 * fix: opensuse yaml * fix: opensuse yaml * fix: opensuse yaml * fix: opensuse yaml * fix: opensuse yaml * fix: opensuse yaml * fix: yaml * fix: yaml * fix: yaml * fix: opensuse yaml * fix: opensuse * fix: opensuse * fix: opensuse * fix: opensuse * fix: string trim os osRelease field NAME * fix: 0_setup.go if err typo * test * test * fix: typo in linux.go * test: remove quotes from opensuse case * test: revert * test: "" * test: "" * test: "" * test: "" * fix: replace trim with replace * fix: drop 0_setup.go and run checks by system.go * fix: elementary os yaml name * fix: open suse yaml entry * fix: commented out result.Release = version * fix: commented out result.Release = version * fix: revert Replace to Trim * fix: Linux Mint yaml entry * fix: capitalize distros entries * fix: capitalize distros entries * fix: capitalize distros entries * test * test * fix: open suse yaml entry * fix: yaml entris * test * test * test * test * test * test * branch changing * fix: bug in setup process * debugging * debugging * debugging * debugging * fix: yaml entries & err == nil bug * Update prerequisites.go * fix: bug * fix: 0_setup.go * fix: yaml bug * fix: yaml bug
This commit is contained in:
parent
77939ea414
commit
08fe7b64d6
@ -46,10 +46,12 @@ Make sure you have the xcode command line tools installed. This can be done by r
|
||||
|
||||
### Linux
|
||||
|
||||
#### Debian 9, Ubuntu 18.04, Zorin 15, Parrot 4.7, Linuxmint 19
|
||||
#### Debian 9, Ubuntu 18.04
|
||||
|
||||
`sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev`
|
||||
|
||||
_Also Zorin 15, Parrot 4.7, Linuxmint 19_
|
||||
|
||||
#### Arch Linux
|
||||
|
||||
`sudo pacman -S webkit2gtk gtk3`
|
||||
|
@ -93,7 +93,6 @@ func parseOsRelease(osRelease string) *DistroInfo {
|
||||
}
|
||||
}
|
||||
// Check distro name against list of distros
|
||||
result.Release = version
|
||||
switch osID {
|
||||
case "fedora":
|
||||
result.Distribution = Fedora
|
||||
@ -119,8 +118,10 @@ func parseOsRelease(osRelease string) *DistroInfo {
|
||||
result.Distribution = Unknown
|
||||
}
|
||||
|
||||
result.ID = osID
|
||||
result.Name = osNAME
|
||||
result.ID = osID
|
||||
result.Release = version
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
|
@ -21,8 +21,8 @@ type Distribution struct {
|
||||
// GetRelease attempts to return the specific Release information
|
||||
// for the given release name. If there is no specific match, the
|
||||
// default release data is returned.
|
||||
func (d *Distribution) GetRelease(name string) *Release {
|
||||
result := d.Releases[name]
|
||||
func (d *Distribution) GetRelease(version string) *Release {
|
||||
result := d.Releases[version]
|
||||
if result == nil {
|
||||
result = d.Releases["default"]
|
||||
}
|
||||
@ -72,8 +72,8 @@ func (l *LinuxDB) ImportData(data []byte) error {
|
||||
// GetDistro returns the Distribution information for the
|
||||
// given distribution name. If the distribution is not supported,
|
||||
// nil is returned.
|
||||
func (l *LinuxDB) GetDistro(name string) *Distribution {
|
||||
return l.Distributions[name]
|
||||
func (l *LinuxDB) GetDistro(distro string) *Distribution {
|
||||
return l.Distributions[distro]
|
||||
}
|
||||
|
||||
// NewLinuxDB creates a new LinuxDB instance from the bundled
|
||||
|
@ -33,7 +33,7 @@ distributions:
|
||||
releases:
|
||||
default:
|
||||
version: default
|
||||
name: Parrot
|
||||
name: Parrot GNU/Linux
|
||||
gccversioncommand: *gccdumpversion
|
||||
programs: *debiandefaultprograms
|
||||
libraries: *debiandefaultlibraries
|
||||
@ -51,7 +51,7 @@ distributions:
|
||||
releases:
|
||||
default:
|
||||
version: default
|
||||
name: Linuxmint
|
||||
name: Linux Mint
|
||||
gccversioncommand: *gccdumpversion
|
||||
programs: *debiandefaultprograms
|
||||
libraries: *debiandefaultlibraries
|
||||
@ -79,7 +79,7 @@ distributions:
|
||||
releases:
|
||||
default:
|
||||
version: default
|
||||
name: CentOS
|
||||
name: CentOS Linux
|
||||
gccversioncommand: *gccdumpversion
|
||||
programs:
|
||||
- name: gcc
|
||||
@ -87,7 +87,7 @@ distributions:
|
||||
- name: pkg-config
|
||||
help: Please install with `sudo yum install pkgconf-pkg-config` and try again
|
||||
- name: npm
|
||||
help: Please install with `sudo yum install nodejs` and try again
|
||||
help: Please install with `sudo yum install epel-release && sudo yum install nodejs` and try again
|
||||
libraries:
|
||||
- name: gtk3-devel
|
||||
help: Please install with `sudo yum install gtk3-devel` and try again
|
||||
@ -119,17 +119,18 @@ distributions:
|
||||
version: default
|
||||
name: Arch Linux
|
||||
gccversioncommand: *gccdumpversion
|
||||
prerequisites:
|
||||
- name: gtk3
|
||||
help: Please install with `sudo pacman -S gtk3` and try again
|
||||
- name: webkit2gtk
|
||||
help: Please install with `sudo pacman -S webkit2gtk` and try again
|
||||
- name: gcc
|
||||
help: Please install with `sudo pacman -S gcc` and try again
|
||||
- name: pkgconf
|
||||
help: Please install with `sudo pacman -S pkgconf` and try again
|
||||
- name: npm
|
||||
help: Please install with `sudo pacman -S npm` and try again
|
||||
programs:
|
||||
- name: gcc
|
||||
help: Please install with `sudo pacman -S gcc` and try again
|
||||
- name: pkgconf
|
||||
help: Please install with `sudo pacman -S pkgconf` and try again
|
||||
- name: npm
|
||||
help: Please install with `sudo pacman -S npm` and try again
|
||||
libraries:
|
||||
- name: gtk3
|
||||
help: Please install with `sudo pacman -S gtk3` and try again
|
||||
- name: webkit2gtk
|
||||
help: Please install with `sudo pacman -S webkit2gtk` and try again
|
||||
gentoo:
|
||||
id: gentoo
|
||||
releases:
|
||||
@ -137,14 +138,16 @@ distributions:
|
||||
version: default
|
||||
name: Gentoo
|
||||
gccversioncommand: *gccdumpversion
|
||||
prerequisites:
|
||||
- name: gtk+:3
|
||||
help: Please install with `sudo emerge gtk+:3` and try again
|
||||
- name: webkit-gtk
|
||||
help: Please install with `sudo emerge webkit-gtk` and try again
|
||||
- name: gcc
|
||||
help: Please install using your system's package manager
|
||||
- name: pkg-config
|
||||
help: Please install using your system's package manager
|
||||
- name: npm
|
||||
help: Please install using your system's package manager
|
||||
programs:
|
||||
- name: gcc
|
||||
help: Please install using your system's package manager
|
||||
- name: pkg-config
|
||||
help: Please install using your system's package manager
|
||||
- name: npm
|
||||
help: Please install using your system's package manager
|
||||
libraries:
|
||||
- name: gtk+:3
|
||||
help: Please install with `sudo emerge gtk+:3` and try again
|
||||
- name: webkit-gtk
|
||||
help: Please install with `sudo emerge webkit-gtk` and try again
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"runtime"
|
||||
|
||||
"github.com/wailsapp/wails/cmd"
|
||||
@ -24,7 +23,7 @@ func init() {
|
||||
|
||||
system := cmd.NewSystemHelper()
|
||||
err = system.Initialise()
|
||||
if err == nil {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -33,23 +32,9 @@ Create your first project by running 'wails init'.`
|
||||
if runtime.GOOS != "windows" {
|
||||
successMessage = "🚀 " + successMessage
|
||||
}
|
||||
// Platform check
|
||||
err = platformCheck()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Check we have a cgo capable environment
|
||||
logger.Yellow("Checking for prerequisites...")
|
||||
var requiredProgramErrors bool
|
||||
requiredProgramErrors, err = checkRequiredPrograms()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Linux has library deps
|
||||
var libraryErrors bool
|
||||
libraryErrors, err = checkLibraries()
|
||||
// Chrck for programs and libraries dependencies
|
||||
errors, err := cmd.CheckDependencies(logger)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -60,76 +45,14 @@ Create your first project by running 'wails init'.`
|
||||
return err
|
||||
}
|
||||
|
||||
logger.White("")
|
||||
|
||||
// Check for errors
|
||||
var errors = libraryErrors || requiredProgramErrors
|
||||
if !errors {
|
||||
// CheckDependencies() returns !errors
|
||||
// so to get the right message in this
|
||||
// check we have to do it in reversed
|
||||
if errors {
|
||||
logger.Yellow(successMessage)
|
||||
}
|
||||
|
||||
return err
|
||||
})
|
||||
}
|
||||
|
||||
func platformCheck() error {
|
||||
switch runtime.GOOS {
|
||||
case "darwin":
|
||||
logger.Yellow("Detected Platform: OSX")
|
||||
case "windows":
|
||||
logger.Yellow("Detected Platform: Windows")
|
||||
case "linux":
|
||||
logger.Yellow("Detected Platform: Linux")
|
||||
default:
|
||||
return fmt.Errorf("Platform %s is currently not supported", runtime.GOOS)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func checkLibraries() (errors bool, err error) {
|
||||
if runtime.GOOS == "linux" {
|
||||
// Check library prerequisites
|
||||
requiredLibraries, err := cmd.GetRequiredLibraries()
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
distroInfo := cmd.GetLinuxDistroInfo()
|
||||
for _, library := range *requiredLibraries {
|
||||
switch distroInfo.Distribution {
|
||||
case cmd.Ubuntu, cmd.Zorin, cmd.Debian:
|
||||
installed, err := cmd.DpkgInstalled(library.Name)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
if !installed {
|
||||
errors = true
|
||||
logger.Red("Library '%s' not found. %s", library.Name, library.Help)
|
||||
} else {
|
||||
logger.Green("Library '%s' installed.", library.Name)
|
||||
}
|
||||
default:
|
||||
return false, cmd.RequestSupportForDistribution(distroInfo)
|
||||
}
|
||||
}
|
||||
}
|
||||
return false, nil
|
||||
}
|
||||
|
||||
func checkRequiredPrograms() (errors bool, err error) {
|
||||
requiredPrograms, err := cmd.GetRequiredPrograms()
|
||||
if err != nil {
|
||||
return true, err
|
||||
}
|
||||
errors = false
|
||||
programHelper := cmd.NewProgramHelper()
|
||||
for _, program := range *requiredPrograms {
|
||||
bin := programHelper.FindProgram(program.Name)
|
||||
if bin == nil {
|
||||
errors = true
|
||||
logger.Red("Program '%s' not found. %s", program.Name, program.Help)
|
||||
} else {
|
||||
logger.Green("Program '%s' found: %s", program.Name, bin.Path)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user