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 config_dir() -> Result<PathBuf>
pub fn config_dir() -> Result<PathBuf>
Get config subdirectory (for daemon configuration files)
Returns: {root}/config/
Example: ~/.config/kodegen/config/
Sourcepub fn toolset_dir() -> Result<PathBuf>
pub fn toolset_dir() -> Result<PathBuf>
Get toolset subdirectory (for tool definitions)
Returns: {root}/toolset/
Example: ~/.config/kodegen/toolset/
Sourcepub fn state_dir() -> Result<PathBuf>
pub fn state_dir() -> Result<PathBuf>
Get state subdirectory (for PIDs, sockets, runtime state)
Returns: {root}/state/
Example: ~/.config/kodegen/state/
Sourcepub fn log_dir() -> Result<PathBuf>
pub fn log_dir() -> Result<PathBuf>
Get log subdirectory (for .log files)
Returns: {root}/logs/
Example: ~/.config/kodegen/logs/
Sourcepub fn data_dir() -> Result<PathBuf>
pub fn data_dir() -> Result<PathBuf>
Get data subdirectory (for databases, stats, caches, certificates)
Returns: {root}/data/
Example: ~/.config/kodegen/data/
Sourcepub fn bin_dir() -> Result<PathBuf>
pub fn bin_dir() -> Result<PathBuf>
Get bin subdirectory (for binary storage before symlinking)
Returns: {root}/bin/
Example: ~/.config/kodegen/bin/
Sourcepub fn cache_dir() -> Result<PathBuf>
pub fn cache_dir() -> Result<PathBuf>
Get cache subdirectory (for temporary build artifacts, downloads, Chrome cache)
Returns: {root}/cache/
Example: ~/.config/kodegen/cache/
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