mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 07:40:17 +08:00
Change style of doctor command (#2660)
* Refactor doctor command * Refactor doctor command * Refactor doctor command * Refactor doctor command * Added changelog entry
This commit is contained in:
parent
37e43dabc0
commit
65c68301a0
@ -14,43 +14,33 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func diagnoseEnvironment(f *flags.Doctor) error {
|
func diagnoseEnvironment(f *flags.Doctor) error {
|
||||||
|
|
||||||
if f.NoColour {
|
if f.NoColour {
|
||||||
pterm.DisableColor()
|
pterm.DisableColor()
|
||||||
colour.ColourEnabled = false
|
colour.ColourEnabled = false
|
||||||
}
|
}
|
||||||
|
|
||||||
app.PrintBanner()
|
pterm.DefaultSection = *pterm.DefaultSection.
|
||||||
|
WithBottomPadding(0).
|
||||||
|
WithStyle(pterm.NewStyle(pterm.FgBlue, pterm.Bold))
|
||||||
|
|
||||||
spinner, _ := pterm.DefaultSpinner.Start("Scanning system - Please wait (this may take a long time)...")
|
pterm.Println() // Spacer
|
||||||
|
pterm.DefaultHeader.WithBackgroundStyle(pterm.NewStyle(pterm.BgLightBlue)).WithMargin(10).Println("Wails Doctor")
|
||||||
|
pterm.Println() // Spacer
|
||||||
|
|
||||||
|
spinner, _ := pterm.DefaultSpinner.WithRemoveWhenDone().Start("Scanning system - Please wait (this may take a long time)...")
|
||||||
|
|
||||||
// Get system info
|
// Get system info
|
||||||
info, err := system.GetInfo()
|
info, err := system.GetInfo()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
spinner.Fail("Failed.")
|
spinner.Fail()
|
||||||
return err
|
pterm.Error.Println("Failed to get system information")
|
||||||
}
|
|
||||||
spinner.Success("Done.")
|
|
||||||
|
|
||||||
pterm.DefaultSection.Println("System")
|
|
||||||
|
|
||||||
systemTabledata := [][]string{
|
|
||||||
{"OS", info.OS.Name},
|
|
||||||
{"Version", info.OS.Version},
|
|
||||||
{"ID", info.OS.ID},
|
|
||||||
{"Go Version", runtime.Version()},
|
|
||||||
{"Platform", runtime.GOOS},
|
|
||||||
{"Architecture", runtime.GOARCH},
|
|
||||||
}
|
|
||||||
|
|
||||||
err = pterm.DefaultTable.WithData(systemTabledata).Render()
|
|
||||||
if err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
spinner.Success()
|
||||||
|
|
||||||
pterm.DefaultSection.Println("Wails")
|
pterm.DefaultSection.Println("Wails")
|
||||||
|
|
||||||
wailsTableData := [][]string{
|
wailsTableData := pterm.TableData{
|
||||||
{"Version", app.Version()},
|
{"Version", app.Version()},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,41 +68,57 @@ func diagnoseEnvironment(f *flags.Doctor) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pterm.DefaultSection.Println("System")
|
||||||
|
|
||||||
|
systemTabledata := pterm.TableData{
|
||||||
|
{pterm.Bold.Sprint("OS"), info.OS.Name},
|
||||||
|
{pterm.Bold.Sprint("Version"), info.OS.Version},
|
||||||
|
{pterm.Bold.Sprint("ID"), info.OS.ID},
|
||||||
|
{pterm.Bold.Sprint("Go Version"), runtime.Version()},
|
||||||
|
{pterm.Bold.Sprint("Platform"), runtime.GOOS},
|
||||||
|
{pterm.Bold.Sprint("Architecture"), runtime.GOARCH},
|
||||||
|
}
|
||||||
|
|
||||||
|
err = pterm.DefaultTable.WithBoxed().WithData(systemTabledata).Render()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
pterm.DefaultSection.Println("Dependencies")
|
pterm.DefaultSection.Println("Dependencies")
|
||||||
|
|
||||||
// Output Dependencies Status
|
// Output Dependencies Status
|
||||||
var dependenciesMissing = []string{}
|
var dependenciesMissing []string
|
||||||
var externalPackages = []*packagemanager.Dependency{}
|
var externalPackages []*packagemanager.Dependency
|
||||||
var dependenciesAvailableRequired = 0
|
var dependenciesAvailableRequired = 0
|
||||||
var dependenciesAvailableOptional = 0
|
var dependenciesAvailableOptional = 0
|
||||||
|
|
||||||
dependenciesTableData := [][]string{
|
dependenciesTableData := pterm.TableData{
|
||||||
{"Dependency", "Package Name", "Status", "Version"},
|
{"Dependency", "Package Name", "Status", "Version"},
|
||||||
}
|
}
|
||||||
|
|
||||||
hasOptionalDependencies := false
|
hasOptionalDependencies := false
|
||||||
// Loop over dependencies
|
// Loop over dependencies
|
||||||
for _, dependency := range info.Dependencies {
|
for _, dependency := range info.Dependencies {
|
||||||
|
|
||||||
name := dependency.Name
|
name := dependency.Name
|
||||||
|
|
||||||
if dependency.Optional {
|
if dependency.Optional {
|
||||||
name = "*" + name
|
name = pterm.Gray("*") + name
|
||||||
hasOptionalDependencies = true
|
hasOptionalDependencies = true
|
||||||
}
|
}
|
||||||
|
|
||||||
packageName := "Unknown"
|
packageName := "Unknown"
|
||||||
status := "Not Found"
|
status := pterm.LightRed("Not Found")
|
||||||
|
|
||||||
// If we found the package
|
// If we found the package
|
||||||
if dependency.PackageName != "" {
|
if dependency.PackageName != "" {
|
||||||
|
|
||||||
packageName = dependency.PackageName
|
packageName = dependency.PackageName
|
||||||
|
|
||||||
// If it's installed, update the status
|
// If it's installed, update the status
|
||||||
if dependency.Installed {
|
if dependency.Installed {
|
||||||
status = "Installed"
|
status = pterm.LightGreen("Installed")
|
||||||
} else {
|
} else {
|
||||||
// Generate meaningful status text
|
// Generate meaningful status text
|
||||||
status = "Available"
|
status = pterm.LightMagenta("Available")
|
||||||
|
|
||||||
if dependency.Optional {
|
if dependency.Optional {
|
||||||
dependenciesAvailableOptional++
|
dependenciesAvailableOptional++
|
||||||
@ -133,22 +139,19 @@ func diagnoseEnvironment(f *flags.Doctor) error {
|
|||||||
dependenciesTableData = append(dependenciesTableData, []string{name, packageName, status, dependency.Version})
|
dependenciesTableData = append(dependenciesTableData, []string{name, packageName, status, dependency.Version})
|
||||||
}
|
}
|
||||||
|
|
||||||
err = pterm.DefaultTable.WithHasHeader(true).WithData(dependenciesTableData).Render()
|
dependenciesTableString, _ := pterm.DefaultTable.WithHasHeader(true).WithData(dependenciesTableData).Srender()
|
||||||
|
dependenciesBox := pterm.DefaultBox.WithTitleBottomCenter()
|
||||||
|
|
||||||
if hasOptionalDependencies {
|
if hasOptionalDependencies {
|
||||||
pterm.Println("* - Optional Dependency")
|
dependenciesBox = dependenciesBox.WithTitle(pterm.Gray("*") + " - Optional Dependency")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dependenciesBox.Println(dependenciesTableString)
|
||||||
|
|
||||||
pterm.DefaultSection.Println("Diagnosis")
|
pterm.DefaultSection.Println("Diagnosis")
|
||||||
|
|
||||||
// Generate an appropriate diagnosis
|
// Generate an appropriate diagnosis
|
||||||
|
|
||||||
if len(dependenciesMissing) == 0 && dependenciesAvailableRequired == 0 {
|
|
||||||
pterm.Println("Your system is ready for Wails development!")
|
|
||||||
} else {
|
|
||||||
pterm.Println("Your system has missing dependencies!")
|
|
||||||
}
|
|
||||||
|
|
||||||
if dependenciesAvailableRequired != 0 {
|
if dependenciesAvailableRequired != 0 {
|
||||||
pterm.Println("Required package(s) installation details: \n" + info.Dependencies.InstallAllRequiredCommand())
|
pterm.Println("Required package(s) installation details: \n" + info.Dependencies.InstallAllRequiredCommand())
|
||||||
}
|
}
|
||||||
@ -157,11 +160,18 @@ func diagnoseEnvironment(f *flags.Doctor) error {
|
|||||||
pterm.Println("Optional package(s) installation details: \n" + info.Dependencies.InstallAllOptionalCommand())
|
pterm.Println("Optional package(s) installation details: \n" + info.Dependencies.InstallAllOptionalCommand())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(dependenciesMissing) == 0 && dependenciesAvailableRequired == 0 {
|
||||||
|
pterm.Success.Println("Your system is ready for Wails development!")
|
||||||
|
} else {
|
||||||
|
pterm.Warning.Println("Your system has missing dependencies!")
|
||||||
|
}
|
||||||
|
|
||||||
if len(dependenciesMissing) != 0 {
|
if len(dependenciesMissing) != 0 {
|
||||||
pterm.Println("Fatal:")
|
pterm.Println("Fatal:")
|
||||||
pterm.Println("Required dependencies missing: " + strings.Join(dependenciesMissing, " "))
|
pterm.Println("Required dependencies missing: " + strings.Join(dependenciesMissing, " "))
|
||||||
pterm.Println("Please read this article on how to resolve this: https://wails.io/guides/resolving-missing-packages")
|
pterm.Println("Please read this article on how to resolve this: https://wails.io/guides/resolving-missing-packages")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pterm.Println() // Spacer for sponsor message
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -48,6 +48,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
- Changed styling of `doctor` command. Changed by @MarvinJWendt in [PR](https://github.com/wailsapp/wails/pull/2660)
|
||||||
- [v3] Typescript model generation using `StructDef`s from new AST-based parser. Added by @ATenderholt in [PR1](https://github.com/wailsapp/wails/pull/2428/files) and [PR2](https://github.com/wailsapp/wails/pull/2485).
|
- [v3] Typescript model generation using `StructDef`s from new AST-based parser. Added by @ATenderholt in [PR1](https://github.com/wailsapp/wails/pull/2428/files) and [PR2](https://github.com/wailsapp/wails/pull/2485).
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
Loading…
Reference in New Issue
Block a user