dotfiles/.config/fish/functions/pb.fish

42 lines
1.3 KiB
Fish

function pb --description 'Upload a paste to sr.ht'
set -l cmd $argv[1]
set -l args $argv[2..]
switch $cmd
case create
set -l output (hut paste create $args)
if not test $status = 0
echo 'Error creating paste!'
false
return
end
set -l url (string match -r 'https://paste\.sr\.ht/.+/[a-zA-Z0-9]+$' $output)
echo $url | wl-copy
echo "$url copied to clipboard."
case copy
set -l lines (string split \n (hut paste list) | string trim | string match -rv '^$')
if test (count $lines) -le 1
echo 'No pastes found!'
false
return
end
for i in (seq 1 2 (count $lines))
set -l meta $lines[$i]
set -l filename $lines[(math $i + 1)]
set -l append "$filename: $meta"
if not set -q list
set --function list $append
else
set --function list $list $append
end
end
printf '%s\n' $list
set -l selection (echo $list | fzf)
echo $selection
case '*'
echo 'Unhandled case!'
# echo ">$cmd<"
false
return
end
end