This commit is contained in:
Lea Anthony
2019-01-07 22:58:25 +11:00
parent 53cf2bb953
commit f06ce760ba
3 changed files with 75 additions and 25 deletions

View File

@@ -1,6 +1,7 @@
package main
import (
"fmt"
"runtime"
"github.com/wailsapp/wails/cmd"
@@ -17,27 +18,80 @@ func init() {
setupCommand.Action(func() error {
var successMessage = `Ready for take off!
Create your first project by running 'wails init'.`
if runtime.GOOS != "windows" {
successMessage = "🚀 " + successMessage
}
system := cmd.NewSystemHelper()
err := system.Initialise()
if err != nil {
return err
}
err, success := cmd.CheckDependencies(logger)
var successMessage = `Ready for take off!
Create your first project by running 'wails init'.`
if runtime.GOOS != "windows" {
successMessage = "🚀 " + successMessage
}
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)
}
logger.Yellow("Checking for prerequisites...")
// Check we have a cgo capable environment
requiredPrograms, err := cmd.GetRequiredPrograms()
if err != nil {
return 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)
}
}
// Linux has library deps
if runtime.GOOS == "linux" {
// Check library prerequisites
requiredLibraries, err := cmd.GetRequiredLibraries()
if err != nil {
return err
}
distroInfo := cmd.GetLinuxDistroInfo()
for _, library := range *requiredLibraries {
switch distroInfo.Distribution {
case cmd.Ubuntu:
installed, err := cmd.DpkgInstalled(library.Name)
if err != nil {
return 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 fmt.Errorf("unable to check libraries on distribution '%s'. Please ensure that the '%s' equivalent is installed", distroInfo.DistributorID, library.Name)
}
}
}
logger.White("")
if success {
if !errors {
logger.Yellow(successMessage)
}
return nil
return err
})
}

View File

@@ -34,7 +34,7 @@ Any flags that are required and not given will be prompted for.`
return err
}
err, success := cmd.CheckDependencies(logger)
success, err := cmd.CheckDependencies(logger)
if !success {
return err
}