utils

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 11, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package utils provides utility functions for pgcopy

Index

Constants

View Source
const (
	ColorReset   = "\033[0m"
	ColorRed     = "\033[31m"
	ColorGreen   = "\033[32m"
	ColorYellow  = "\033[33m"
	ColorBlue    = "\033[34m"
	ColorMagenta = "\033[35m"
	ColorCyan    = "\033[36m"
	ColorWhite   = "\033[37m"
	ColorBold    = "\033[1m"
	ColorDim     = "\033[2m"
)

ANSI color codes

Variables

View Source
var (
	// ErrCanceled indicates the operation was canceled (typically via context cancellation).
	ErrCanceled = errors.New("operation canceled")

	// ErrDeadlineExceeded indicates the operation exceeded its deadline (context timeout).
	ErrDeadlineExceeded = errors.New("deadline exceeded")

	// ErrInvalidConfig indicates invalid or inconsistent configuration values.
	ErrInvalidConfig = errors.New("invalid configuration")

	// ErrCopyFailures aggregates one or more errors that occurred during copy operations.
	ErrCopyFailures = errors.New("one or more copy operations failed")

	// ErrFKBackupExists indicates an FK backup file exists from a previous run and needs attention.
	ErrFKBackupExists = errors.New("foreign key backup file exists")

	// ErrFKRecoveryFailed indicates attempts to recover FKs from the backup file encountered errors.
	ErrFKRecoveryFailed = errors.New("foreign key backup recovery failed")
)

Functions

func Colorize

func Colorize(color, text string) string

Colorize adds color to text if output supports it

func ExtractConnectionDetails added in v0.3.0

func ExtractConnectionDetails(connStr string) string

ExtractConnectionDetails extracts clean postgres://server:port/database information from a connection string Removes credentials for safe display

func FormatDuration

func FormatDuration(d time.Duration) string

FormatDuration formats a duration without decimal parts

func FormatLogDuration

func FormatLogDuration(d time.Duration) string

FormatLogDuration formats duration for log files with rounded values

func FormatLogLevel

func FormatLogLevel(level string) string

FormatLogLevel formats log levels with colors and icons

func FormatNumber

func FormatNumber(n int64) string

FormatNumber formats large numbers with K/M suffixes

func HighlightFKName

func HighlightFKName(fkName string) string

HighlightFKName highlights foreign key constraint names

func HighlightNumber

func HighlightNumber(number any) string

HighlightNumber highlights numbers in brackets and standalone numbers

func HighlightTableName

func HighlightTableName(schema, table string) string

HighlightTableName highlights table names in log messages

func IsColorSupported

func IsColorSupported() bool

IsColorSupported checks if the terminal supports colors

func MaskPassword added in v0.3.0

func MaskPassword(connStr string) string

MaskPassword masks password in PostgreSQL connection strings for safe display

func MatchesAnyPattern

func MatchesAnyPattern(text string, patterns []string) bool

MatchesAnyPattern checks if a string matches any of the given patterns

func MatchesAnyTablePattern added in v0.5.0

func MatchesAnyTablePattern(schema, table string, patterns []string) bool

MatchesAnyTablePattern returns true if any pattern matches either table or schema.table.

func MatchesPattern

func MatchesPattern(text, pattern string) bool

MatchesPattern checks if a string matches a wildcard pattern Supports * wildcard for matching any sequence of characters

func MatchesTablePattern added in v0.5.0

func MatchesTablePattern(schema, table, pattern string) bool

MatchesTablePattern checks if a pattern matches either the simple table name or the fully-qualified name schema.table. Patterns support * wildcards. Examples:

users          -> matches table name "users"
public.users   -> matches full name "public.users"
public.*       -> matches any table in schema public
*.users        -> matches table "users" in any schema

func QuoteIdent added in v0.5.0

func QuoteIdent(s string) string

QuoteIdent returns a PostgreSQL-quoted identifier with embedded quotes escaped. Example: My"Tbl -> "My""Tbl"

func QuoteJoinIdents added in v0.5.0

func QuoteJoinIdents(cols []string) string

QuoteJoinIdents quotes each identifier and joins them with comma+space.

func QuoteLiteral added in v0.5.0

func QuoteLiteral(s string) string

QuoteLiteral returns a single-quoted SQL string literal with embedded quotes escaped.

func QuoteTable added in v0.5.0

func QuoteTable(schema, table string) string

QuoteTable returns a fully-qualified, quoted table name: "schema"."table".

Types

type LogLevel added in v0.4.0

type LogLevel int

LogLevel represents verbosity threshold.

const (
	// LevelDebug enables verbose diagnostic logs.
	LevelDebug LogLevel = iota
	// LevelInfo standard informational logs.
	LevelInfo
	// LevelWarn warning conditions.
	LevelWarn
	// LevelError error conditions.
	LevelError
	// LevelSilent disables all logging.
	LevelSilent
)

type Logger

type Logger interface {
	Debug(format string, args ...any)
	Info(format string, args ...any)
	Warn(format string, args ...any)
	Error(format string, args ...any)
}

Logger interface for colorized logging

type SimpleLogger

type SimpleLogger struct {
	// contains filtered or unexported fields
}

SimpleLogger provides basic logging functionality

func NewSilentLogger

func NewSilentLogger() *SimpleLogger

NewSilentLogger creates a new silent logger that suppresses all output

func NewSimpleLogger

func NewSimpleLogger(logger *log.Logger) *SimpleLogger

NewSimpleLogger creates a new simple logger

func (*SimpleLogger) Debug added in v0.4.0

func (l *SimpleLogger) Debug(format string, args ...any)

Debug logs verbose diagnostic information.

func (*SimpleLogger) Error added in v0.4.0

func (l *SimpleLogger) Error(format string, args ...any)

Error logs errors.

func (*SimpleLogger) Info added in v0.4.0

func (l *SimpleLogger) Info(format string, args ...any)

Info logs informational messages (general progress).

func (*SimpleLogger) Warn added in v0.4.0

func (l *SimpleLogger) Warn(format string, args ...any)

Warn logs warnings.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL