/* |-------------------------------------------------------------------------- | Description |-------------------------------------------------------------------------- | | Name: | - Status | | Purpose: | - Provide a framework-level CLI status utility that standardizes | terminal message presentation using semantic labels and visual | indicators to ensure consistent output across all softwares. | |-------------------------------------------------------------------------- */ /* |-------------------------------------------------------------------------- | Instruction |-------------------------------------------------------------------------- | | Guideline: | - Accept a semantic status category and human-readable message. | - Use INFO, WARNING, SUCCESS, and ERROR as supported status labels. | - Treat unsupported, empty, or invalid labels as INFO. | - Emit exactly one standardized terminal message per invocation. | | Example: | - ObrimStatus( | "INFO", | "Application started successfully.", | ) | | - ObrimStatus( | "WARNING", | "Configuration file not found.", | ) | | - ObrimStatus( | "SUCCESS", | "Installation completed.", | ) | | - ObrimStatus( | "ERROR", | "Unable to connect to the server.", | ) | |-------------------------------------------------------------------------- */ /* |-------------------------------------------------------------------------- | Credit |-------------------------------------------------------------------------- | | Contributor: | - Rajon Ahmed | - Blockonite | |-------------------------------------------------------------------------- */ package status import ( "fmt" "strings" ) // ObrimStatus emits a standardized terminal message. func ObrimStatus(label, message string) { normalizedLabel, normalizedMessage := obrimStatusValidateInput(label, message) output := obrimStatusBuildOutput(obrimStatusFormatMessage(normalizedLabel, normalizedMessage)) fmt.Print(output) } // obrimStatusValidateInput normalizes and validates the status label and message. func obrimStatusValidateInput(label, message string) (string, string) { normalizedLabel := strings.ToUpper(strings.TrimSpace(label)) normalizedMessage := strings.TrimSpace(message) switch normalizedLabel { case "INFO", "WARNING", "SUCCESS", "ERROR": default: normalizedLabel = "INFO" } return normalizedLabel, normalizedMessage } // obrimStatusFormatMessage formats the status label and message with its visual indicator. func obrimStatusFormatMessage(label, message string) string { var indicator string switch label { case "WARNING": indicator = "!" case "SUCCESS": indicator = "✓" case "ERROR": indicator = "✗" default: indicator = "ℹ" } return fmt.Sprintf("[%s %s] %s\n", indicator, label, message) } // obrimStatusBuildOutput builds the final terminal message. func obrimStatusBuildOutput(message string) string { return message }