dotfiles/dot_config/fish/private_functions/private_await.fish

43 lines
875 B
Fish

function await -d "Wait for background jobs"
if test -z "$argv"
set argv (last_job_id)
end
set -l spinners "$await_spinners"
set -l interval "$await_interval"
if test -z "$spinners"
set spinners ⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏
end
if test -z "$interval"
set interval 0.05
end
while true
for spinner in $spinners
printf " $spinner \r" > /dev/stderr
sleep "$interval"
end
set -l currently_active_jobs (last_job_id)
if test -z "$currently_active_jobs"
break
end
set -l has_jobs
for i in $argv
if builtin contains -- $i $currently_active_jobs
set has_jobs "*"
break
end
end
if test -z "$has_jobs"
break
end
end
end