dotfiles/bin/tmux-edit-helper

29 lines
1.1 KiB
Text
Raw Normal View History

2022-07-27 16:19:21 +02:00
#!/usr/bin/env bash
2023-02-02 09:37:07 +01:00
set -fe -o pipefail
2022-07-27 16:19:21 +02:00
2023-06-08 21:02:52 +02:00
eval "$(direnv export bash 2>/dev/null)"
PATH="$HOME/bin:$PATH"
2023-02-12 11:36:35 +01:00
2022-07-27 16:19:21 +02:00
if [ -n "$1" ]; then
2022-11-22 09:56:09 +01:00
_file=$(readlink -f "$@")
2022-07-27 16:19:21 +02:00
else
2022-11-22 09:56:09 +01:00
FZF=${FZF:-"fzf-tmux -p 90%,50% -y 0"}
2023-06-08 21:02:52 +02:00
_root=$(git rev-parse --show-toplevel 2>/dev/null || jj workspace root 2>/dev/null || pwd)
_store=$(echo "$_root" | sha1sum | cut -d ' ' -f 1)
2023-06-08 21:02:52 +02:00
_file=$( ( (fre --store_name "$_store" --sorted | xargs -n 100 ls -d 2>/dev/null || true) && fd --type f --hidden --follow --exclude .git --exclude .jj --ignore-file "${_root}/.gitignore" . "$_root") | cat -n | sort -k2 -k1n | uniq -f1 | sort -nk1,1 | cut -f2- | sed -e "s#^${_root}/##" | $FZF --no-sort)
_file="${_root}/${_file}"
2022-11-22 09:56:09 +01:00
fre --store_name "$_store" --add "$_file"
2022-07-27 16:19:21 +02:00
fi
_nvim_socket="$XDG_RUNTIME_DIR/nvim-persistent.sock"
tmux select-window -t nvim 2>/dev/null && exec nvim --server "$_nvim_socket" --remote "$_file"
2022-12-03 14:06:37 +01:00
# nvim is not running/listening on remote socket, so start it.
tmux new-window -S -n nvim \
-e "BUILD_COMMAND=$BUILD_COMMAND" \
-e "GOPACKAGESDRIVER=$GOPACKAGESDRIVER" \
-e "GOFLAGS=$GOFLAGS" \
nvim --listen "$_nvim_socket" "$_file"