From ba34490aaed5f7c242c2b0453130fefc07d0d5d0 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Mon, 29 Jun 2026 04:03:38 -0400 Subject: restructured project --- config.go | 137 -------------------------------------------------------------- 1 file changed, 137 deletions(-) delete mode 100644 config.go (limited to 'config.go') diff --git a/config.go b/config.go deleted file mode 100644 index 8e34cf3..0000000 --- a/config.go +++ /dev/null @@ -1,137 +0,0 @@ -package main - -import ( - "os" - "path/filepath" - - "gopkg.in/yaml.v3" -) - -type ConfigKeybindings struct { - Quit string `yaml:"quit"` - Save string `yaml:"save"` - Undo string `yaml:"undo"` - Redo string `yaml:"redo"` - UnicodeToggle string `yaml:"unicode_toggle"` - ColorToggle string `yaml:"color_toggle"` - FillToggle string `yaml:"fill_toggle"` - Resize string `yaml:"resize"` - DrillDown string `yaml:"drill_down"` - DrillUp string `yaml:"drill_up"` - DeleteSubmap string `yaml:"delete_submap"` -} - -type Config struct { - Symbols []Terrain `yaml:"symbols"` - Keybindings ConfigKeybindings `yaml:"keybindings"` - SubmapBg string `yaml:"submap_bg"` - DefaultMapWidth int `yaml:"default_map_width"` - DefaultMapHeight int `yaml:"default_map_height"` -} - -func defaultConfig() Config { - return Config{ - SubmapBg: "236", - DefaultMapWidth: 80, - DefaultMapHeight: 25, - Keybindings: ConfigKeybindings{ - Quit: "q", - Save: "s", - Undo: "u", - Redo: "r", - UnicodeToggle: "U", - ColorToggle: "C", - FillToggle: "F", - Resize: "R", - DrillDown: "enter", - DrillUp: "esc", - DeleteSubmap: "D", - }, - Symbols: []Terrain{ - {Name: "water", Symbol: "≋", ASCII: "~", Colors: []TerrainColor{{Color: "21", Weight: 30}, {Color: "27", Weight: 30}, {Color: "33", Weight: 20}, {Color: "39", Weight: 20}}}, - {Name: "mountains", Symbol: "▲", ASCII: "^", Colors: []TerrainColor{{Color: "243", Weight: 40}, {Color: "247", Weight: 30}, {Color: "250", Weight: 30}}}, - {Name: "crater", Symbol: "▼", ASCII: "v", Colors: []TerrainColor{{Color: "243", Weight: 40}, {Color: "247", Weight: 30}, {Color: "250", Weight: 30}}}, - {Name: "plains", Symbol: "≡", ASCII: "=", Colors: []TerrainColor{{Color: "106", Weight: 30}, {Color: "70", Weight: 25}, {Color: "64", Weight: 25}, {Color: "71", Weight: 20}}}, - {Name: "trees", Symbol: "♣", ASCII: "#", Colors: []TerrainColor{{Color: "28", Weight: 30}, {Color: "34", Weight: 25}, {Color: "22", Weight: 25}, {Color: "29", Weight: 20}}}, - {Name: "settlement", Symbol: "⌂", ASCII: "@", Colors: []TerrainColor{{Color: "130", Weight: 40}, {Color: "136", Weight: 30}, {Color: "94", Weight: 30}}}, - {Name: "outpost", Symbol: "◈", ASCII: "&", Colors: []TerrainColor{{Color: "172", Weight: 40}, {Color: "166", Weight: 30}, {Color: "130", Weight: 30}}}, - {Name: "road", Symbol: "·", ASCII: ".", Colors: []TerrainColor{{Color: "244", Weight: 40}, {Color: "242", Weight: 30}, {Color: "246", Weight: 30}}}, - {Name: "desert", Symbol: "░", ASCII: "_", Colors: []TerrainColor{{Color: "178", Weight: 30}, {Color: "180", Weight: 25}, {Color: "222", Weight: 25}, {Color: "179", Weight: 20}}}, - {Name: "snow", Symbol: "❄", ASCII: "*", Colors: []TerrainColor{{Color: "255", Weight: 40}, {Color: "254", Weight: 30}, {Color: "250", Weight: 30}}}, - {Name: "swamp", Symbol: "≈", ASCII: "%", Colors: []TerrainColor{{Color: "64", Weight: 30}, {Color: "65", Weight: 25}, {Color: "58", Weight: 25}, {Color: "107", Weight: 20}}}, - {Name: "cave", Symbol: "◌", ASCII: "n", Colors: []TerrainColor{{Color: "237", Weight: 40}, {Color: "235", Weight: 30}, {Color: "239", Weight: 30}}}, - {Name: "wall", Symbol: "█", ASCII: "|", Colors: []TerrainColor{{Color: "240", Weight: 40}, {Color: "238", Weight: 30}, {Color: "242", Weight: 30}}}, - {Name: "bridge", Symbol: "▬", ASCII: "-", Colors: []TerrainColor{{Color: "94", Weight: 40}, {Color: "130", Weight: 30}, {Color: "136", Weight: 30}}}, - {Name: "lava", Symbol: "▓", ASCII: "L", Colors: []TerrainColor{{Color: "196", Weight: 30}, {Color: "202", Weight: 25}, {Color: "208", Weight: 25}, {Color: "124", Weight: 20}}}, - {Name: "ice", Symbol: "▩", ASCII: "I", Colors: []TerrainColor{{Color: "51", Weight: 40}, {Color: "45", Weight: 30}, {Color: "50", Weight: 30}}}, - {Name: "ruins", Symbol: "▣", ASCII: "r", Colors: []TerrainColor{{Color: "244", Weight: 35}, {Color: "240", Weight: 35}, {Color: "243", Weight: 30}}}, - {Name: "farmland", Symbol: "▤", ASCII: "f", Colors: []TerrainColor{{Color: "142", Weight: 35}, {Color: "143", Weight: 35}, {Color: "106", Weight: 30}}}, - {Name: "tower", Symbol: "◬", ASCII: "T", Colors: []TerrainColor{{Color: "220", Weight: 40}, {Color: "214", Weight: 30}, {Color: "222", Weight: 30}}}, - {Name: "castle", Symbol: "♜", ASCII: "C", Colors: []TerrainColor{{Color: "248", Weight: 35}, {Color: "244", Weight: 35}, {Color: "136", Weight: 30}}}, - {Name: "coast", Symbol: "∼", ASCII: "s", Colors: []TerrainColor{{Color: "33", Weight: 35}, {Color: "39", Weight: 35}, {Color: "27", Weight: 30}}}, - {Name: "village", Symbol: "◉", ASCII: "o", Colors: []TerrainColor{{Color: "208", Weight: 35}, {Color: "172", Weight: 35}, {Color: "166", Weight: 30}}}, - {Name: "graveyard", Symbol: "☠", ASCII: "y", Colors: []TerrainColor{{Color: "238", Weight: 40}, {Color: "240", Weight: 30}, {Color: "242", Weight: 30}}}, - {Name: "tavern", Symbol: "♨", ASCII: "a", Colors: []TerrainColor{{Color: "130", Weight: 35}, {Color: "94", Weight: 35}, {Color: "131", Weight: 30}}}, - {Name: "dungeon", Symbol: "◎", ASCII: "d", Colors: []TerrainColor{{Color: "239", Weight: 40}, {Color: "237", Weight: 30}, {Color: "241", Weight: 30}}}, - {Name: "forest", Symbol: "♠", ASCII: "F", Colors: []TerrainColor{{Color: "28", Weight: 30}, {Color: "64", Weight: 25}, {Color: "22", Weight: 25}, {Color: "35", Weight: 20}}}, - {Name: "shrine", Symbol: "✞", ASCII: "h", Colors: []TerrainColor{{Color: "220", Weight: 35}, {Color: "214", Weight: 35}, {Color: "178", Weight: 30}}}, - {Name: "crypt", Symbol: "▦", ASCII: "x", Colors: []TerrainColor{{Color: "236", Weight: 40}, {Color: "238", Weight: 30}, {Color: "240", Weight: 30}}}, - {Name: "rift", Symbol: "⚡", ASCII: "i", Colors: []TerrainColor{{Color: "129", Weight: 35}, {Color: "93", Weight: 35}, {Color: "201", Weight: 30}}}, - {Name: "oasis", Symbol: "◯", ASCII: "b", Colors: []TerrainColor{{Color: "51", Weight: 35}, {Color: "33", Weight: 35}, {Color: "39", Weight: 30}}}, - {Name: "citadel", Symbol: "◘", ASCII: "V", Colors: []TerrainColor{{Color: "250", Weight: 35}, {Color: "248", Weight: 35}, {Color: "253", Weight: 30}}}, - {Name: "flowers", Symbol: "⚘", ASCII: "f", Colors: []TerrainColor{{Color: "169", Weight: 35}, {Color: "133", Weight: 35}, {Color: "170", Weight: 30}}}, - {Name: "wall/road", Symbol: "═", ASCII: "=", Colors: []TerrainColor{{Color: "243", Weight: 100}}}, - {Name: "wall/road", Symbol: "║", ASCII: "|", Colors: []TerrainColor{{Color: "243", Weight: 100}}}, - {Name: "wall/road", Symbol: "╔", ASCII: "+", Colors: []TerrainColor{{Color: "243", Weight: 100}}}, - {Name: "wall/road", Symbol: "╗", ASCII: "+", Colors: []TerrainColor{{Color: "243", Weight: 100}}}, - {Name: "wall/road", Symbol: "╚", ASCII: "+", Colors: []TerrainColor{{Color: "243", Weight: 100}}}, - {Name: "wall/road", Symbol: "╝", ASCII: "+", Colors: []TerrainColor{{Color: "243", Weight: 100}}}, - {Name: "wall/road", Symbol: "╠", ASCII: "+", Colors: []TerrainColor{{Color: "243", Weight: 100}}}, - {Name: "wall/road", Symbol: "╣", ASCII: "+", Colors: []TerrainColor{{Color: "243", Weight: 100}}}, - {Name: "wall/road", Symbol: "╦", ASCII: "+", Colors: []TerrainColor{{Color: "243", Weight: 100}}}, - {Name: "wall/road", Symbol: "╩", ASCII: "+", Colors: []TerrainColor{{Color: "243", Weight: 100}}}, - {Name: "wall/road", Symbol: "╬", ASCII: "+", Colors: []TerrainColor{{Color: "243", Weight: 100}}}, - }, - } -} - -// findConfigFile checks next to the binary, then XDG_CONFIG_HOME. -func findConfigFile() string { - // 1. Next to the binary - exe, err := os.Executable() - if err == nil { - dir := filepath.Dir(exe) - p := filepath.Join(dir, "config.yaml") - if _, err := os.Stat(p); err == nil { - return p - } - } - // 2. XDG_CONFIG_HOME/tui-ascii-mapper - cfgDir := os.Getenv("XDG_CONFIG_HOME") - if cfgDir == "" { - home, _ := os.UserHomeDir() - cfgDir = filepath.Join(home, ".config") - } - p := filepath.Join(cfgDir, "tui-ascii-mapper", "config.yaml") - if _, err := os.Stat(p); err == nil { - return p - } - return "" -} - -// LoadConfig loads config.yaml, recreating with defaults if missing. -func LoadConfig() Config { - path := findConfigFile() - if path == "" { - return defaultConfig() - } - data, err := os.ReadFile(path) - if err != nil { - return defaultConfig() - } - var cfg Config - if err := yaml.Unmarshal(data, &cfg); err != nil { - return defaultConfig() - } - return cfg -} -- cgit v1.2.3