summaryrefslogtreecommitdiff
path: root/ar/.local/bin/gpt
blob: 393916a5dbdfe9977e7207f57616bede4e64c87b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/sh

set -e

# Check if input is piped
if [ -t 0 ]; then
  input="$1"
else
  input=$(cat | sed -E "s/\x1b\[[0-9;]*m//g")
fi

# Use a temporary file for the processed content
tmpfile=$(mktemp /tmp/nvim_buffer_cleaned.XXXXXX)

# Save the input to the temporary file
echo "$input" >"$tmpfile"

# Process the input and open Neovim directly, ensuring it doesn't suspend
nvim \
  -c "GpChatNew" \
  -c "call append(line('\$')-1, readfile('$tmpfile'))" \
  -c "normal! Gdd" \
  -c "startinsert"

# Remove the temporary file after usage
rm "$tmpfile"