From 08fe7b64d61913fc999cca3f441cd5e534eea3fd Mon Sep 17 00:00:00 2001 From: Byron Date: Sun, 25 Aug 2019 22:02:49 +0300 Subject: [PATCH] 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 --- README.md | 4 +- cmd/linux.go | 5 ++- cmd/linuxdb.go | 8 ++-- cmd/linuxdb.yaml | 55 +++++++++++++------------- cmd/wails/0_setup.go | 91 ++++---------------------------------------- 5 files changed, 46 insertions(+), 117 deletions(-) diff --git a/README.md b/README.md index c0d0d560c..ee4fd62af 100644 --- a/README.md +++ b/README.md @@ -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` diff --git a/cmd/linux.go b/cmd/linux.go index f2afb9230..9821df1d1 100644 --- a/cmd/linux.go +++ b/cmd/linux.go @@ -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 } diff --git a/cmd/linuxdb.go b/cmd/linuxdb.go index 90e92548f..58892f5f3 100644 --- a/cmd/linuxdb.go +++ b/cmd/linuxdb.go @@ -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 diff --git a/cmd/linuxdb.yaml b/cmd/linuxdb.yaml index bc9b17c37..8f2a4450b 100644 --- a/cmd/linuxdb.yaml +++ b/cmd/linuxdb.yaml @@ -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 + diff --git a/cmd/wails/0_setup.go b/cmd/wails/0_setup.go index 561b0dae5..e3a035948 100644 --- a/cmd/wails/0_setup.go +++ b/cmd/wails/0_setup.go @@ -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 -}