final feature set
This commit is contained in:
50
tasks/config-persistence/23-config-directory-setup.md
Normal file
50
tasks/config-persistence/23-config-directory-setup.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user