summaryrefslogtreecommitdiffstats
path: root/spinner.sh
blob: f5a0e23226e60a1778d75273ba2a40924dcb23a2 (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/bash
# Small spinner script, that returns exit code of CMD and keeps colored output
# Usage: ./spinner CMD

spinner() {
	local PID=$1
	local SPIN="/-\|"
	local i=0
	while kill -0 $PID >/dev/null 2>&1; do
		printf "\r%s" "${SPIN:$i:1}"
		i=$(($i+1))
		[[ $i -eq 4 ]] && i=0
		sleep 10;
	done
}

cat /tmp/update 2>/dev/null
$(script -q -e /dev/null -c "${@} 2>&1" >/tmp/output) &
PID=$!
spinner "${PID}" &
wait ${PID}
RC=$?
sleep .075
printf "\r"
cat /tmp/output
exit $RC