config

package
v0.6.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 7, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package config handles loading and managing msgvault configuration.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultHome

func DefaultHome() string

DefaultHome returns the default msgvault home directory. Respects MSGVAULT_HOME environment variable and expands ~ in its value.

func MkTempDir added in v0.6.0

func MkTempDir(pattern string, preferredDirs ...string) (string, error)

MkTempDir creates a temporary directory with fallback logic for restricted environments (e.g. Windows where %TEMP% may be inaccessible due to permissions, antivirus, or group policy).

It tries the following locations in order:

  1. Each directory in preferredDirs (if any)
  2. The system default temp directory (os.TempDir())
  3. A "tmp" subdirectory under the msgvault home directory (~/.msgvault/tmp/)

The first successful location is used. If all locations fail, the error from the system temp dir attempt is returned along with the final fallback error.

Types

type Config

type Config struct {
	Data  DataConfig  `toml:"data"`
	OAuth OAuthConfig `toml:"oauth"`
	Sync  SyncConfig  `toml:"sync"`

	// Computed paths (not from config file)
	HomeDir string `toml:"-"`
	// contains filtered or unexported fields
}

Config represents the msgvault configuration.

func Load

func Load(path, homeDir string) (*Config, error)

Load reads the configuration from the specified file. If path is empty, uses the default location (~/.msgvault/config.toml), which is optional (missing file returns defaults). If path is explicitly provided, the file must exist.

homeDir overrides the home directory (equivalent to MSGVAULT_HOME). When set, config.toml is loaded from homeDir unless path is also set.

func NewDefaultConfig added in v0.4.0

func NewDefaultConfig() *Config

NewDefaultConfig returns a configuration with default values.

func (*Config) AnalyticsDir

func (c *Config) AnalyticsDir() string

AnalyticsDir returns the path to the Parquet analytics directory.

func (*Config) AttachmentsDir

func (c *Config) AttachmentsDir() string

AttachmentsDir returns the path to the attachments directory.

func (*Config) ConfigFilePath added in v0.5.0

func (c *Config) ConfigFilePath() string

ConfigFilePath returns the path to the config file. If a config was loaded (including via --config), returns the actual path used. Otherwise returns the default location based on HomeDir.

func (*Config) DatabaseDSN added in v0.4.0

func (c *Config) DatabaseDSN() string

DatabaseDSN returns the database connection string or file path.

func (*Config) EnsureHomeDir added in v0.5.0

func (c *Config) EnsureHomeDir() error

EnsureHomeDir creates the msgvault home directory if it doesn't exist.

func (*Config) TokensDir

func (c *Config) TokensDir() string

TokensDir returns the path to the OAuth tokens directory.

type DataConfig

type DataConfig struct {
	DataDir     string `toml:"data_dir"`
	DatabaseURL string `toml:"database_url"`
}

DataConfig holds data storage configuration.

type OAuthConfig

type OAuthConfig struct {
	ClientSecrets string `toml:"client_secrets"`
}

OAuthConfig holds OAuth configuration.

type SyncConfig

type SyncConfig struct {
	RateLimitQPS int `toml:"rate_limit_qps"`
}

SyncConfig holds sync-related configuration.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL