51 lines
1.5 KiB
Markdown
51 lines
1.5 KiB
Markdown
# 23. Implement XDG_CONFIG_HOME Directory Setup
|
|
|
|
meta:
|
|
id: config-persistence-23
|
|
feature: config-persistence
|
|
priority: P1
|
|
depends_on: []
|
|
tags: [configuration, file-system, directory-setup]
|
|
|
|
objective:
|
|
- Implement XDG_CONFIG_HOME directory detection and creation
|
|
- Create application-specific config directory
|
|
- Handle XDG_CONFIG_HOME environment variable
|
|
- Provide fallback to ~/.config if XDG_CONFIG_HOME not set
|
|
|
|
deliverables:
|
|
- Config directory detection utility
|
|
- Directory creation logic
|
|
- Environment variable handling
|
|
|
|
steps:
|
|
1. Create `src/utils/config-dir.ts`
|
|
2. Implement XDG_CONFIG_HOME detection
|
|
3. Create fallback to HOME/.config
|
|
4. Create application-specific directory (podcast-tui-app)
|
|
5. Add directory creation with error handling
|
|
|
|
tests:
|
|
- Unit: Test XDG_CONFIG_HOME detection
|
|
- Unit: Test config directory creation
|
|
- Manual: Verify directory exists at expected path
|
|
|
|
acceptance_criteria:
|
|
- Config directory is created at correct path
|
|
- XDG_CONFIG_HOME is respected if set
|
|
- Falls back to ~/.config if XDG_CONFIG_HOME not set
|
|
- Directory is created with correct permissions
|
|
|
|
validation:
|
|
- Run app and check config directory exists
|
|
- Test with XDG_CONFIG_HOME=/custom/path
|
|
- Test with XDG_CONFIG_HOME not set
|
|
- Verify directory is created in both cases
|
|
|
|
notes:
|
|
- XDG_CONFIG_HOME default: ~/.config
|
|
- App name from package.json: podcast-tui-app
|
|
- Use Bun.file() and file operations for directory creation
|
|
- Handle permission errors gracefully
|
|
- Use mkdir -p for recursive creation
|