Babysitter viper-go-setup
Set up Viper for Go configuration management with file, env, and flag binding.
install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/cli-mcp-development/skills/viper-go-setup" ~/.claude/skills/a5c-ai-babysitter-viper-go-setup && rm -rf "$T"
manifest:
library/specializations/cli-mcp-development/skills/viper-go-setup/SKILL.mdsource content
Viper Go Setup
Set up Viper for Go configuration management.
Generated Patterns
package config import ( "github.com/spf13/viper" "github.com/spf13/cobra" ) type Config struct { Server ServerConfig `mapstructure:"server"` Database DatabaseConfig `mapstructure:"database"` } type ServerConfig struct { Host string `mapstructure:"host"` Port int `mapstructure:"port"` } func InitConfig(cfgFile string) (*Config, error) { if cfgFile != "" { viper.SetConfigFile(cfgFile) } else { viper.SetConfigName("config") viper.SetConfigType("yaml") viper.AddConfigPath(".") viper.AddConfigPath("$HOME/.myapp") } viper.AutomaticEnv() viper.SetEnvPrefix("MYAPP") if err := viper.ReadInConfig(); err != nil { if _, ok := err.(viper.ConfigFileNotFoundError); !ok { return nil, err } } var cfg Config if err := viper.Unmarshal(&cfg); err != nil { return nil, err } return &cfg, nil }
Target Processes
- configuration-management-system
- cli-application-bootstrap