Files
dotfiles/dot_local/bin/executable_gho
T
Prad Nukala 6406208b35 shell: fish functions -> ~/.local/bin executables + bash/zsh ports; manage ~/.agents
- 16 cross-shell utilities converted to sh/bash chezmoi executables:
  ai c2p cp-appid extract_agents fab gdc gh-sonr-org-migrate ghg-clone
  ghn gho git-summary launch_omp_livediff_overlay lc-elir mdcp mdp pj
  (ghg-clone not named ghg: unrelated cargo binary owns that name)
- cwd/history helpers stay per-shell: yy c cd clip-last + ghg/ghn/gho
  cd-wrappers in bash/functions/ and zsh/functions/, loaded by rc files
- fish keeps only shell-state functions; converted ones now hit PATH
- cp-appid ignore gating moved to .local/bin path
- dot_agents/skills: 82 skills materialized from dotstate storage so
  dot_claude skill symlinks resolve on fresh bootstrap; dotstate
  profile/symlinks.json released .agents/skills .bashrc .zshrc
2026-08-10 15:15:06 -04:00

21 lines
917 B
Bash
Executable File

#!/bin/sh
# Pick a ghq repo or an Obsidian vault with fzf (tab toggles the list);
# prints the directory for the shell wrapper to cd into.
vaults="$HOME/Documents/Obsidian/Personal $HOME/Documents/Obsidian/Walletbase $HOME/Documents/Obsidian/Research"
# fzf runs bind actions with $SHELL -c; pin it to sh so the transform
# snippet below is interpreted consistently regardless of login shell.
selection=$(ghq list | SHELL=/bin/sh fzf --prompt="repo: " --tiebreak=end \
--bind "tab:transform:if [ \"\$FZF_PROMPT\" = 'repo: ' ]; then
echo \"change-prompt(vault: )+reload(printf '%s\\n' $vaults)\"
else
echo 'change-prompt(repo: )+reload(ghq list)'
fi") || exit 1
[ -n "$selection" ] || exit 1
# Vault entries are absolute paths; ghq entries are host/user/repo
case "$selection" in
/*) printf '%s\n' "$selection" ;;
*) printf '%s\n' "$(ghq root)/$selection" ;;
esac