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/project from 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 to func 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 string field to config struct
- Update
parseConfig() to parse workdir=... from config files
- Add workdir to config display/debugging output
4. tui/init.go - Default Configuration
- Set default
workdir value in runConfig initialization
Behavior Priority
- CLI argument (highest priority)
- Local
.tuido config workdir setting
- Global config
workdir setting
- 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
Problem
Currently, Tuido always uses the current working directory (
os.Getwd()) as the root for file discovery. Users cannot:cd-ing firsttuido /path/to/projectfrom anywhereProposed Solution
1. CLI Directory Parameter
Allow users to specify a directory as a positional argument:
2. Default Working Directory Config
Add
workdiroption to.tuidoconfig files:Technical Implementation
Required Changes
1.
main.go- CLI Argument Parsingtui.Run()call to pass specified directory2.
tui/tui.go- Working Directory Handlingfunc Run()signature tofunc Run(workdir string)os.Getwd()call (line ~32) with parameter3.
tui/config.go- Configuration Supportworkdir stringfield toconfigstructparseConfig()to parseworkdir=...from config files4.
tui/init.go- Default Configurationworkdirvalue inrunConfiginitializationBehavior Priority
.tuidoconfigworkdirsettingworkdirsettingBenefits
Examples
With config file (
~/.config/tuido.conf):Running
tuidowould default to scanning/home/user/main-project.Compatibility