config.go 716 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package app
  2. import (
  3. "os"
  4. "path/filepath"
  5. "github.com/marcozac/go-jsonc"
  6. )
  7. type Config struct {
  8. }
  9. type ConfigMCP struct {
  10. }
  11. type ConfigProvider struct {
  12. }
  13. type ErrInvalidConfig struct {
  14. source error
  15. }
  16. func (e ErrInvalidConfig) Error() string {
  17. return "ErrInvalidConfig"
  18. }
  19. func (e ErrInvalidConfig) Unwrap() error {
  20. return e.source
  21. }
  22. func initConfig(directory string) (*Config, error) {
  23. configPath := filepath.Join(directory, "opencode.jsonc")
  24. _, err := os.Stat(configPath)
  25. result := &Config{}
  26. if err == nil {
  27. data, err := os.ReadFile(configPath)
  28. if err == nil {
  29. err := jsonc.Unmarshal(data, result)
  30. if err != nil {
  31. return nil, ErrInvalidConfig{err}
  32. }
  33. }
  34. }
  35. return result, nil
  36. }