Configuration¶
Config File Location¶
Legacy Location¶
Older versions used ~/.profs/. Migrate with:
Config Format¶
Fields¶
| Field | Type | Description |
|---|---|---|
paths |
[]string |
List of managed paths |
File Structure¶
After adding paths:
~/.config/gigurra/profs/
└── global.json
~/.gitconfig -> ~/.gitconfig.profs/work
~/.gitconfig.profs/
├── work
└── personal
~/.ssh -> ~/.ssh.profs/work
~/.ssh.profs/
├── work/
│ ├── config
│ ├── id_ed25519
│ └── id_ed25519.pub
└── personal/
├── config
├── id_ed25519
└── id_ed25519.pub
Profile Storage¶
Profiles are stored as subdirectories in .profs companion directories:
There's no central profile registry - profiles are discovered by scanning these directories.
Current Profile Detection¶
The current profile is determined by following symlinks:
If different paths point to different profiles, you have an inconsistent state.
Manual Editing¶
You can edit global.json directly:
After editing, verify with:
Backup¶
To backup your profs setup:
# Config
cp ~/.config/gigurra/profs/global.json ~/backup/
# All profiles
for path in $(cat ~/.config/gigurra/profs/global.json | jq -r '.paths[]'); do
cp -r "${path}.profs" ~/backup/
done
Environment¶
profs uses standard Go path expansion:
| Syntax | Expands To |
|---|---|
~ |
Home directory |
$HOME |
Home directory |
$VAR |
Environment variable |
Troubleshooting¶
Config Not Found¶
If profs can't find config:
# Check location
ls -la ~/.config/gigurra/profs/
# Create manually if needed
mkdir -p ~/.config/gigurra/profs
echo '{"paths":[]}' > ~/.config/gigurra/profs/global.json
Corrupted Config¶
Reset and start over:
Symlink Issues¶
Check symlinks manually:
Fix broken symlinks:
Or let profs fix it: