56 lines
1.1 KiB
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
|
|
}
|
|
}
|
|
}
|