Files
dotfiles/dot_config/bash/functions/clip-last.bash
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

30 lines
998 B
Bash

# Re-run last command, copy output to clipboard.
# History-offset handling: some line editors add the current command to
# history before execution, some after — detect instead of assuming.
clip-last() {
local last copy
last=$(fc -ln -1 -1 2>/dev/null)
last=${last#"${last%%[![:space:]]*}"} # trim leading whitespace
case $last in
clip-last*)
last=$(fc -ln -2 -2 2>/dev/null)
last=${last#"${last%%[![:space:]]*}"}
;;
esac
if [ -z "$last" ]; then
echo "clip-last: no previous command in history" >&2
return 1
fi
if command -v wl-copy >/dev/null 2>&1; then
copy=wl-copy
elif command -v pbcopy >/dev/null 2>&1; then
copy=pbcopy
else
echo "clip-last: no clipboard tool (wl-copy/pbcopy) found" >&2
return 1
fi
eval "$last" | "$copy"
command -v notify-send >/dev/null 2>&1 \
&& notify-send -a shell "Clipboard" "Command output copied to clipboard"
}