summaryrefslogtreecommitdiff
path: root/print.go
diff options
context:
space:
mode:
authorEltrac <hi@guhub.cn>2025-11-11 17:01:03 +0800
committerEltrac <hi@guhub.cn>2025-11-11 17:01:03 +0800
commitecf45ce14fc747a530b1ed08ac7bf7a4ab039b1a (patch)
treef38d73b25f71710a502fafc2535e8cf03257cbed /print.go
parent9cc339569c2014d6f58f6fc585f5bf952962ba19 (diff)
refactor: tidy up print.go with sections
Diffstat (limited to 'print.go')
-rw-r--r--print.go38
1 files changed, 30 insertions, 8 deletions
diff --git a/print.go b/print.go
index f268ec5..e463fe6 100644
--- a/print.go
+++ b/print.go
@@ -11,6 +11,8 @@ import (
"github.com/hako/durafmt"
)
+// === Print Entry Point === //
+
func PrintInfo(formula *FormulaInfo, cask *CaskInfo, pkgName string) {
if formula == nil && cask == nil {
fmt.Println("Package not found.")
@@ -18,16 +20,34 @@ func PrintInfo(formula *FormulaInfo, cask *CaskInfo, pkgName string) {
}
printHeader(formula, cask)
- printInstallDesc(formula, cask)
- printRecentActivity(formula, cask, pkgName)
- printVersionInfo(formula, cask)
+ printUserInteractionSummary(formula, cask, pkgName)
printMetadata(formula, cask)
fmt.Println()
}
-// prints the icon and package name
+// === Main Sections === //
+
func printHeader(formula *FormulaInfo, cask *CaskInfo) {
+ printTypeNameAndDesc(formula, cask)
+ fmt.Println()
+}
+
+func printUserInteractionSummary(
+ formula *FormulaInfo, cask *CaskInfo, pkgName string) {
+ printInstallDesc(formula, cask)
+ printRecentActivity(formula, cask, pkgName)
+ fmt.Println()
+}
+
+func printMetadata(formula *FormulaInfo, cask *CaskInfo) {
+ printVersionInfo(formula, cask)
+ printHomeAndLicense(formula, cask)
+}
+
+// === #Section: Header# === //
+
+func printTypeNameAndDesc(formula *FormulaInfo, cask *CaskInfo) {
var icon, typ, name, desc string
if formula != nil {
@@ -47,9 +67,11 @@ func printHeader(formula *FormulaInfo, cask *CaskInfo) {
fmt.Printf("%s ", icon)
color.New(color.FgYellow).Printf("%s ", typ)
color.New(color.Bold).Printf("%s", name)
- fmt.Printf(" - %s\n\n", desc)
+ fmt.Printf(" - %s\n", desc)
}
+// === #Section: User Interaction Summary# === //
+
// answers questions like "how it got here?"
func printInstallDesc(formula *FormulaInfo, cask *CaskInfo) {
if cask != nil || formula == nil {
@@ -70,7 +92,6 @@ func printInstallDesc(formula *FormulaInfo, cask *CaskInfo) {
fmt.Printf("Used by: %s\n", strings.Join(dependencies, ", "))
}
}
- fmt.Println()
}
// answers questions like "have I used this recently?"
@@ -108,6 +129,8 @@ func printRecentActivity(formula *FormulaInfo, cask *CaskInfo, pkgName string) {
color.Blue(format, humanReadableDuration)
}
+// === #Section: Metadata# === //
+
// prints badges like [Outdated] [Up to date] ...
// used by printMetadata
func printVersionInfo(formula *FormulaInfo, cask *CaskInfo) {
@@ -149,8 +172,7 @@ func printVersionInfo(formula *FormulaInfo, cask *CaskInfo) {
color.New(installBadgeColor).Printf(" %s\n", installBadge)
}
-// prints homepage, license, and other fields
-func printMetadata(formula *FormulaInfo, cask *CaskInfo) {
+func printHomeAndLicense(formula *FormulaInfo, cask *CaskInfo) {
if formula != nil {
fmt.Printf("🔗 %s\n", formula.Homepage)
fmt.Printf("📜 %s\n", formula.License)