Files
golib/console/README.md
nabbar 9e8179374b README:
- Add some README file to give missing documentations or update existing documentation file

Package Archive:
- Add some comments to godoc information
- Moving NopWriterCloser interface to ioutils package

Package IOUtils:
- New package NopWriterCloser to implement interfac like NopReader

Package Database:
- KVMap: fix missing function following update of kvdriver

Package Duration:
- Rename BDD testing

Package Context/Gin:
- Moving function New between model & interface file

Package AWS:
- rework Walk function to use more generic with standard walk caller function
- func walk will now no more return and include error (can be catched into the given func)
- func walk will now return a bool to continue or stop the loop
- func walk with many input function will now stop when all given function return false
- func walk will now return error only about main process and not given function

Package errors:
- Add interface error into interface Error

Package IOUtils:
- Moving IOWrapper as subPackage and optimize process + allow thread safe
2025-05-25 06:29:25 +02:00

2.4 KiB

console Package

The console package provides utilities for enhanced console input/output in Go applications. It offers colored output, user prompts, and string formatting helpers to improve CLI user experience.

Features

  • Colored printing and formatting using fatih/color
  • Customizable color types for standard and prompt outputs
  • User input prompts for strings, integers, booleans, URLs, and passwords (with hidden input)
  • String padding and tabulated printing helpers
  • Error handling with custom error codes

Main Types & Functions

Color Output

  • SetColor(col colorType, value ...int): Set color attributes for a color type.
  • ColorPrint / ColorPrompt: Predefined color types for standard and prompt outputs.
  • Print, Println, Printf, Sprintf: Print text with or without color.
  • BuffPrintf: Print formatted text to an io.Writer with color support.

User Prompts

  • PromptString(text string) (string, error): Prompt user for a string.
  • PromptInt(text string) (int64, error): Prompt user for an integer.
  • PromptBool(text string) (bool, error): Prompt user for a boolean.
  • PromptUrl(text string) (*url.URL, error): Prompt user for a URL.
  • PromptPassword(text string) (string, error): Prompt user for a password (input hidden).

String Formatting Helpers

  • PadLeft/PadRight/PadCenter(str string, len int, pad string) string: Pad a string to a given length.
  • PrintTabf(tablLevel int, format string, args ...interface{}): Print formatted text with indentation.

Error Handling

  • Custom error codes for parameter validation and I/O errors.
  • Errors are wrapped using the github.com/nabbar/golib/errors package.

Example Usage

import "github.com/nabbar/golib/console"

func main() {
    // Set prompt color to green
    console.SetColor(console.ColorPrompt, 32)
    name, _ := console.PromptString("Enter your name")
    console.ColorPrint.Printf("Hello, %s!\n", name)

    // Print padded and colored output
    padded := console.PadCenter("Welcome", 20, "-")
    console.ColorPrint.Println(padded)
}

Notes

  • Colors can be customized using ANSI attributes.
  • Password prompts use hidden input (no echo).
  • All prompt functions return errors; always check them in production code.
  • Deprecated functions are marked and will be removed in future versions.