config

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: May 24, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package config provides utilities for loading and managing configuration settings for the application.

Configuration is loaded from an embedded default configuration file. merged with a user configuration file located in the user's config directory.

Index

Constants

View Source
const (
	// Default indicates that a path-based option should use its default location.
	Default = "default"
)

Variables

This section is empty.

Functions

func UserConfigPath

func UserConfigPath() (string, error)

UserConfigPath returns the user config path (for example: ~/.config/pgxcli/config.toml).

Types

type Config

type Config struct {
	Main  MainConfig  `mapstructure:"main" toml:"main"`
	Table TableConfig `mapstructure:"table" toml:"table"`
}

Config represents the top-level application configuration.

func GetDefaultConfig

func GetDefaultConfig() (*Config, error)

GetDefaultConfig returns the default configuration embedded in the binary.

func Load

func Load() (*Config, error)

Load reads the embedded default configuration and merges with user configuration.

type MainConfig

type MainConfig struct {
	Prompt      string               `mapstructure:"prompt" toml:"prompt"`
	Style       SyntaxHighlightStyle `mapstructure:"style" toml:"style"`
	HistoryFile string               `mapstructure:"history_file" toml:"history_file"`
	LogFile     string               `mapstructure:"log_file" toml:"log_file"`
	Pager       string               `mapstructure:"pager" toml:"pager"`
	OnError     OnErrorAction        `mapstructure:"on_error" toml:"on_error"`
}

MainConfig contains general CLI and session settings.

type OnErrorAction

type OnErrorAction string

OnErrorAction controls multi-statement behavior after a statement fails.

const (
	// OnErrorResume continues executing remaining statements after an error.
	OnErrorResume OnErrorAction = "RESUME"
	// OnErrorStop stops execution immediately when a statement fails.
	OnErrorStop OnErrorAction = "STOP"
)

type SyntaxHighlightStyle

type SyntaxHighlightStyle string
const (
	SyntaxStyleDefault             SyntaxHighlightStyle = "default"
	SyntaxStyleABAP                SyntaxHighlightStyle = "abap"
	SyntaxStyleAlgol               SyntaxHighlightStyle = "algol"
	SyntaxStyleAlgolNU             SyntaxHighlightStyle = "algol_nu"
	SyntaxStyleArduino             SyntaxHighlightStyle = "arduino"
	SyntaxStyleAshen               SyntaxHighlightStyle = "ashen"
	SyntaxStyleAuraThemeDark       SyntaxHighlightStyle = "aura-theme-dark"
	SyntaxStyleAuraThemeDarkSoft   SyntaxHighlightStyle = "aura-theme-dark-soft"
	SyntaxStyleAutumn              SyntaxHighlightStyle = "autumn"
	SyntaxStyleAverage             SyntaxHighlightStyle = "average"
	SyntaxStyleBase16Snazzy        SyntaxHighlightStyle = "base16-snazzy"
	SyntaxStyleBorland             SyntaxHighlightStyle = "borland"
	SyntaxStyleBW                  SyntaxHighlightStyle = "bw"
	SyntaxStyleCatppuccinFrappe    SyntaxHighlightStyle = "catppuccin-frappe"
	SyntaxStyleCatppuccinLatte     SyntaxHighlightStyle = "catppuccin-latte"
	SyntaxStyleCatppuccinMacchiato SyntaxHighlightStyle = "catppuccin-macchiato"
	SyntaxStyleCatppuccinMocha     SyntaxHighlightStyle = "catppuccin-mocha"
	SyntaxStyleColorful            SyntaxHighlightStyle = "colorful"
	SyntaxStyleDoomOne             SyntaxHighlightStyle = "doom-one"
	SyntaxStyleDoomOne2            SyntaxHighlightStyle = "doom-one2"
	SyntaxStyleDracula             SyntaxHighlightStyle = "dracula"
	SyntaxStyleEmacs               SyntaxHighlightStyle = "emacs"
	SyntaxStyleEvergarden          SyntaxHighlightStyle = "evergarden"
	SyntaxStyleFriendly            SyntaxHighlightStyle = "friendly"
	SyntaxStyleFruity              SyntaxHighlightStyle = "fruity"
	SyntaxStyleGitHub              SyntaxHighlightStyle = "github"
	SyntaxStyleGitHubDark          SyntaxHighlightStyle = "github-dark"
	SyntaxStyleGruvbox             SyntaxHighlightStyle = "gruvbox"
	SyntaxStyleGruvboxLight        SyntaxHighlightStyle = "gruvbox-light"
	SyntaxStyleHRHighContrast      SyntaxHighlightStyle = "hr_high_contrast"
	SyntaxStyleHRDark              SyntaxHighlightStyle = "hrdark"
	SyntaxStyleIgor                SyntaxHighlightStyle = "igor"
	SyntaxStyleKanagawaDragon      SyntaxHighlightStyle = "kanagawa-dragon"
	SyntaxStyleKanagawaLotus       SyntaxHighlightStyle = "kanagawa-lotus"
	SyntaxStyleKanagawaWave        SyntaxHighlightStyle = "kanagawa-wave"
	SyntaxStyleLovelace            SyntaxHighlightStyle = "lovelace"
	SyntaxStyleManni               SyntaxHighlightStyle = "manni"
	SyntaxStyleModusOperandi       SyntaxHighlightStyle = "modus-operandi"
	SyntaxStyleModusVivendi        SyntaxHighlightStyle = "modus-vivendi"
	SyntaxStyleMonokai             SyntaxHighlightStyle = "monokai"
	SyntaxStyleMonokaiLight        SyntaxHighlightStyle = "monokailight"
	SyntaxStyleMurphy              SyntaxHighlightStyle = "murphy"
	SyntaxStyleNative              SyntaxHighlightStyle = "native"
	SyntaxStyleNord                SyntaxHighlightStyle = "nord"
	SyntaxStyleNordic              SyntaxHighlightStyle = "nordic"
	SyntaxStyleOnedark             SyntaxHighlightStyle = "onedark"
	SyntaxStyleOneSEnterprise      SyntaxHighlightStyle = "onesenterprise"
	SyntaxStyleParaisoDark         SyntaxHighlightStyle = "paraiso-dark"
	SyntaxStyleParaisoLight        SyntaxHighlightStyle = "paraiso-light"
	SyntaxStylePastie              SyntaxHighlightStyle = "pastie"
	SyntaxStylePerldoc             SyntaxHighlightStyle = "perldoc"
	SyntaxStylePygments            SyntaxHighlightStyle = "pygments"
	SyntaxStyleRainbowDash         SyntaxHighlightStyle = "rainbow_dash"
	SyntaxStyleRosePine            SyntaxHighlightStyle = "rose-pine"
	SyntaxStyleRosePineDawn        SyntaxHighlightStyle = "rose-pine-dawn"
	SyntaxStyleRosePineMoon        SyntaxHighlightStyle = "rose-pine-moon"
	SyntaxStyleRPGLE               SyntaxHighlightStyle = "RPGLE"
	SyntaxStyleRrt                 SyntaxHighlightStyle = "rrt"
	SyntaxStyleSolarizedDark       SyntaxHighlightStyle = "solarized-dark"
	SyntaxStyleSolarizedDark256    SyntaxHighlightStyle = "solarized-dark256"
	SyntaxStyleSolarizedLight      SyntaxHighlightStyle = "solarized-light"
	SyntaxStyleSwapoff             SyntaxHighlightStyle = "swapoff"
	SyntaxStyleTango               SyntaxHighlightStyle = "tango"
	SyntaxStyleTokyoNightDay       SyntaxHighlightStyle = "tokyonight-day"
	SyntaxStyleTokyoNightMoon      SyntaxHighlightStyle = "tokyonight-moon"
	SyntaxStyleTokyoNightNight     SyntaxHighlightStyle = "tokyonight-night"
	SyntaxStyleTokyoNightStorm     SyntaxHighlightStyle = "tokyonight-storm"
	SyntaxStyleTrac                SyntaxHighlightStyle = "trac"
	SyntaxStyleVim                 SyntaxHighlightStyle = "vim"
	SyntaxStyleVS                  SyntaxHighlightStyle = "vs"
	SyntaxStyleVulcan              SyntaxHighlightStyle = "vulcan"
	SyntaxStyleWitchhazel          SyntaxHighlightStyle = "witchhazel"
	SyntaxStyleXcode               SyntaxHighlightStyle = "xcode"
	SyntaxStyleXcodeDark           SyntaxHighlightStyle = "xcode-dark"
)

type TableColor

type TableColor string
const (
	FgDefault   TableColor = "default" // default is cyan for header, white for column and caption
	FgBlack     TableColor = "black"
	FgRed       TableColor = "red"
	FgGreen     TableColor = "green"
	FgYellow    TableColor = "yellow"
	FgBlue      TableColor = "blue"
	FgMagenta   TableColor = "magenta"
	FgCyan      TableColor = "cyan"
	FgWhite     TableColor = "white"
	FgHiBlack   TableColor = "black+"
	FgHiRed     TableColor = "red+"
	FgHiGreen   TableColor = "green+"
	FgHiYellow  TableColor = "yellow+"
	FgHiBlue    TableColor = "blue+"
	FgHiMagenta TableColor = "magenta+"
	FgHiCyan    TableColor = "cyan+"
	FgHiWhite   TableColor = "white+"
)

type TableColorConfig

type TableColorConfig struct {
	Header  TableColor `mapstructure:"header" toml:"header"`
	Column  TableColor `mapstructure:"column" toml:"column"`
	Caption TableColor `mapstructure:"caption" toml:"caption"`
}

TableColorConfig contains color settings for table elements.

type TableConfig

type TableConfig struct {
	Style TableStyle       `mapstructure:"style" toml:"style"`
	Color TableColorConfig `mapstructure:"color" toml:"color"`
}

TableConfig contains output table rendering settings.

type TableStyle

type TableStyle string
const (
	StyleNone        TableStyle = "none"
	StyleASCII       TableStyle = "ascii"
	StyleLight       TableStyle = "light"
	StyleHeavy       TableStyle = "heavy"
	StyleDouble      TableStyle = "double"
	StyleDoubleLong  TableStyle = "double_long"
	StyleLightHeavy  TableStyle = "light_heavy"
	StyleHeavyLight  TableStyle = "heavy_light"
	StyleLightDouble TableStyle = "light_double"
	StyleDoubleLight TableStyle = "double_light"
	StyleRounded     TableStyle = "rounded"
	StyleMarkdown    TableStyle = "markdown"
	StyleGraphical   TableStyle = "graphical"
	StyleMerger      TableStyle = "merger"
	StyleDefault     TableStyle = "default"
	StyleDotted      TableStyle = "dotted"
	StyleArrow       TableStyle = "arrow"
	StyleStarry      TableStyle = "starry"
	StyleHearts      TableStyle = "hearts"
	StyleCircuit     TableStyle = "circuit"
	StyleNature      TableStyle = "nature"
	StyleArtistic    TableStyle = "artistic"
	Style8Bit        TableStyle = "8bit"
	StyleChaos       TableStyle = "chaos"
	StyleDots        TableStyle = "dots"
	StyleBlocks      TableStyle = "blocks"
	StyleZen         TableStyle = "zen"
	StyleVintage     TableStyle = "vintage"
	StyleSketch      TableStyle = "sketch"
	StyleArrowDouble TableStyle = "arrow_double"
	StyleCelestial   TableStyle = "celestial"
	StyleCyber       TableStyle = "cyber"
	StyleRunic       TableStyle = "runic"
	StyleIndustrial  TableStyle = "industrial"
	StyleInk         TableStyle = "ink"
	StyleArcade      TableStyle = "arcade"
	StyleBlossom     TableStyle = "blossom"
	StyleFrosted     TableStyle = "frosted"
	StyleMosaic      TableStyle = "mosaic"
	StyleUFO         TableStyle = "ufo"
	StyleSteampunk   TableStyle = "steampunk"
	StyleGalaxy      TableStyle = "galaxy"
	StyleJazz        TableStyle = "jazz"
	StylePuzzle      TableStyle = "puzzle"
	StyleHypno       TableStyle = "hypno"
)

Jump to

Keyboard shortcuts

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