pub struct KodegenConfig;Expand description
Main configuration path resolver
Implementations§
Source§impl KodegenConfig
impl KodegenConfig
Sourcepub fn user_config_dir() -> Result<PathBuf>
pub fn user_config_dir() -> Result<PathBuf>
Get user-global config directory (XDG-compliant)
Platform paths:
- Unix/Linux:
$XDG_CONFIG_HOME/kodegen(default:~/.config/kodegen) - macOS:
~/Library/Application Support/kodegen - Windows:
%APPDATA%\kodegen
This ALWAYS returns the user-global config directory, never the local .kodegen/.
Sourcepub fn local_config_dir() -> Result<PathBuf>
pub fn local_config_dir() -> Result<PathBuf>
Get git workspace-local config directory
Returns: ${git_root}/.kodegen
This ONLY returns the local .kodegen/ directory, never the user config.
§Errors
Returns an error if:
- Not in a git repository
- Current directory cannot be determined
- Git repository is invalid or corrupted
Sourcepub fn state_dir() -> Result<PathBuf>
pub fn state_dir() -> Result<PathBuf>
Get state directory (for PIDs, sockets, runtime state)
Note: Log files should use log_dir() instead.
Platform paths:
- Unix/Linux:
$XDG_STATE_HOME/kodegen(default:~/.local/state/kodegen) - macOS:
~/Library/Application Support/kodegen/state - Windows:
%LOCALAPPDATA%\kodegen\state
State ALWAYS uses user-global directories (never local .kodegen/).
Sourcepub fn log_dir() -> Result<PathBuf>
pub fn log_dir() -> Result<PathBuf>
Get log directory (for .log files only)
Platform paths:
- Unix/Linux:
$XDG_STATE_HOME/kodegen/logs(default:~/.local/state/kodegen/logs) - macOS:
~/Library/Logs/kodegen - Windows:
%LOCALAPPDATA%\kodegen\logs
Logs ALWAYS use user-global directories (never local .kodegen/).
Sourcepub fn data_dir() -> Result<PathBuf>
pub fn data_dir() -> Result<PathBuf>
Get data directory (for databases, stats, caches)
Platform paths:
- Unix/Linux:
$XDG_DATA_HOME/kodegen(default:~/.local/share/kodegen) - macOS:
~/Library/Application Support/kodegen/data - Windows:
%LOCALAPPDATA%\kodegen\data
Data ALWAYS uses user-global directories (never local .kodegen/).
Sourcepub fn resolve_toolset(name: &str) -> Result<PathBuf>
pub fn resolve_toolset(name: &str) -> Result<PathBuf>
Resolve toolset file path with local > user precedence
Search order:
${git_root}/.kodegen/toolset/{name}.json$XDG_CONFIG_HOME/kodegen/toolset/{name}.json
§Errors
Returns an error if the toolset file is not found in either location. The error message includes all searched paths to aid debugging.
Sourcepub fn resolve_config_file(filename: &str) -> Result<PathBuf>
pub fn resolve_config_file(filename: &str) -> Result<PathBuf>
Resolve config file path with local > user precedence
Search order:
${git_root}/.kodegen/{filename}$XDG_CONFIG_HOME/kodegen/{filename}
§Errors
Returns an error if the config file is not found in either location. The error message includes all searched paths to aid debugging.
Sourcepub fn init_structure() -> Result<()>
pub fn init_structure() -> Result<()>
Initialize directory structures for both local and user config
Creates:
- User config:
toolset/,claude/subdirectories +.gitignore - User state:
logs/subdirectory - User data:
stats/,memory/subdirectories - Local config (if in git repo):
toolset/,claude/+ adds to.gitignore