inou/lib/config.go

56 lines
1.1 KiB
Go

package lib
import (
"log"
"os"
"strings"
)
// Production paths - single source of truth
const (
DBPathDefault = "/tank/inou/data/inou.db"
KeyPathDefault = "/tank/inou/master.key"
configFile = "/tank/inou/anthropic.env"
)
// Init initializes all lib subsystems (crypto, database) with production defaults
func Init() error {
if err := CryptoInit(KeyPathDefault); err != nil {
return err
}
return DBInit(DBPathDefault)
}
var (
GeminiKey string = ""
AnthropicKey string = ""
)
func ConfigInit() {
data, err := os.ReadFile(configFile)
if err != nil {
log.Printf("Warning: %s not found: %v", configFile, err)
return
}
for _, line := range strings.Split(string(data), "\n") {
line = strings.TrimSpace(line)
if line == "" || strings.HasPrefix(line, "#") {
continue
}
parts := strings.SplitN(line, "=", 2)
if len(parts) != 2 {
continue
}
key := strings.TrimSpace(parts[0])
value := strings.TrimSpace(parts[1])
switch key {
case "GEMINI_API_KEY":
GeminiKey = value
case "ANTHROPIC_API_KEY":
AnthropicKey = value
}
}
}