FormatVersionInfo retorna uma string formatada com as informações de versão
(info VersionInfo, latest string, hasUpdate bool, checkErr error)
| 300 | |
| 301 | // FormatVersionInfo retorna uma string formatada com as informações de versão |
| 302 | func FormatVersionInfo(info VersionInfo, latest string, hasUpdate bool, checkErr error) string { |
| 303 | var result strings.Builder |
| 304 | |
| 305 | // Cabeçalho |
| 306 | result.WriteString("\n" + ansiColor("Informações da Versão do ChatCLI", "1;92") + "\n") // Bold + Lime |
| 307 | result.WriteString(ansiColor("Aqui está um resumo da versão atual, build e status de atualizações.", ansiGray) + "\n") |
| 308 | |
| 309 | // --- Versão Atual --- |
| 310 | result.WriteString("\n " + ansiColor("Versão Atual", ansiLime) + "\n") |
| 311 | result.WriteString(fmt.Sprintf(" %s %s\n", ansiColor("Versão:", ansiCyan), ansiColor(displayValue(info.Version), ansiGray))) |
| 312 | result.WriteString(fmt.Sprintf(" %s %s\n", ansiColor("Commit Hash:", ansiCyan), ansiColor(displayValue(info.CommitHash), ansiGray))) |
| 313 | result.WriteString(fmt.Sprintf(" %s %s\n", ansiColor("Data de Build:", ansiCyan), ansiColor(displayValue(info.BuildDate), ansiGray))) |
| 314 | |
| 315 | // --- Atualizações --- |
| 316 | result.WriteString("\n " + ansiColor("Status de Atualizações", ansiLime) + "\n") |
| 317 | if checkErr != nil { |
| 318 | result.WriteString(fmt.Sprintf(" %s %s\n", ansiColor("Erro na Verificação:", ansiCyan), ansiColor(fmt.Sprintf("Não foi possível verificar: %v", checkErr), ansiYellow))) |
| 319 | } else { |
| 320 | result.WriteString(fmt.Sprintf(" %s %s\n", ansiColor("Versão Mais Recente:", ansiCyan), ansiColor(latest, ansiGray))) |
| 321 | if hasUpdate { |
| 322 | result.WriteString(fmt.Sprintf(" %s %s\n", ansiColor("Atualização:", ansiCyan), ansiColor("Disponível! Atualize para a versão mais recente.", ansiGreen))) |
| 323 | } else { |
| 324 | result.WriteString(fmt.Sprintf(" %s %s\n", ansiColor("Atualização:", ansiCyan), ansiColor("Você está na versão mais recente.", ansiGreen))) |
| 325 | } |
| 326 | } |
| 327 | |
| 328 | // --- Dica de Atualização --- |
| 329 | result.WriteString("\n " + ansiColor("Como Atualizar", ansiLime) + "\n") |
| 330 | result.WriteString(fmt.Sprintf(" %s %s\n", ansiColor("Homebrew:", ansiCyan), ansiColor("brew upgrade chatcli", ansiGray))) |
| 331 | result.WriteString(fmt.Sprintf(" %s %s\n", ansiColor("Go Install:", ansiCyan), ansiColor("go install github.com/diillson/chatcli@latest", ansiGray))) |
| 332 | result.WriteString(fmt.Sprintf(" %s %s\n", ansiColor("Dica:", ansiCyan), ansiColor("Instale via Homebrew: brew tap diillson/chatcli && brew install chatcli", ansiGray))) |
| 333 | |
| 334 | result.WriteString("\n") // Espaço final |
| 335 | return result.String() |
| 336 | } |
| 337 | |
| 338 | // GetBuildInfo é o wrapper exportado |
| 339 | func GetBuildInfo() (string, string, string) { |