tuido
tuido copied to clipboard
Add CLI directory parameter and default working directory config
Problem
Currently, Tuido always uses the current working directory (os.Getwd()) as the root for file discovery. Users cannot:
- Specify a different directory to scan without
cd-ing first - Configure a default working directory in their config files
- Run
tuido /path/to/projectfrom anywhere
Proposed Solution
1. CLI Directory Parameter
Allow users to specify a directory as a positional argument:
tuido # Current behavior (working directory)
tuido . # Explicitly current directory
tuido /path/to/project # Scan specified directory
tuido ~/projects/work # Scan home subdirectory
2. Default Working Directory Config
Add workdir option to .tuido config files:
extensions=go,md,txt
writeto=readme.md
workdir=/home/user/default-project
Technical Implementation
Required Changes
1. main.go - CLI Argument Parsing
- Add argument parsing for optional directory parameter
- Modify
tui.Run()call to pass specified directory - Default to current directory if no argument provided
2. tui/tui.go - Working Directory Handling
- Change
func Run()signature tofunc Run(workdir string) - Replace
os.Getwd()call (line ~32) with parameter - Use provided directory for all file discovery operations
3. tui/config.go - Configuration Support
- Add
workdir stringfield toconfigstruct - Update
parseConfig()to parseworkdir=...from config files - Add workdir to config display/debugging output
4. tui/init.go - Default Configuration
- Set default
workdirvalue inrunConfiginitialization
Behavior Priority
- CLI argument (highest priority)
- Local
.tuidoconfigworkdirsetting - Global config
workdirsetting - Current working directory (current behavior)
Benefits
- Flexibility: Run Tuido on any directory without changing location
- Automation: Scripts can specify target directories easily
- Convenience: Set default project directory in config
- Compatibility: Fully backward compatible - existing usage unchanged
Examples
# Current usage (preserved)
cd /project && tuido
# New usage options
tuido /project # Direct directory specification
tuido ~/work/important # Scan specific project
tuido . # Explicit current directory
With config file (~/.config/tuido.conf):
workdir=/home/user/main-project
extensions=md,txt,go
Running tuido would default to scanning /home/user/main-project.
Compatibility
- No breaking changes: Existing behavior preserved when no arguments provided
- Additive feature: New functionality doesn't affect current users
- Config backward compatibility: Existing config files continue working