ソースを参照

~/.bin/run: Run and observe commands in the background

This uses `nq` and `notify-send` to run commands in the background,
collect their output, and notify the user when they're done.

This allows running long-running jobs in the background, without loosing
their output, and with notifications when they're done.  This can be
used to download videos in the background, for example.

This is the first try, but it's already useful.
Lucas Stadler 8 年 前
コミット
bd2ec8ecf6
共有2 個のファイルを変更した32 個の追加0 個の削除を含む
  1. 19 0
      .bin/run
  2. 13 0
      .bin/run-and-notify

+ 19 - 0
.bin/run

@ -0,0 +1,19 @@
1
#!/bin/bash
2
3
export NQDIR="${NQDIR:-$HOME/.cache/run}"
4
5
case "$1" in
6
	-nq)
7
		shift
8
		nq $*
9
		;;
10
	-fq)
11
		shift
12
		fq $*
13
		;;
14
	*)
15
		logfile="$(nq run-and-notify $*)"
16
		echo -e "$(date +%s)\t$logfile\t$*" >> "$NQDIR/jobs"
17
		echo "$NQDIR/$logfile"
18
		;;
19
esac

+ 13 - 0
.bin/run-and-notify

@ -0,0 +1,13 @@
1
#!/bin/bash
2
3
sh -c "$*"
4
5
result="$?"
6
state="success"
7
notify_opts=""
8
if ! [ "$result" = "0" ]; then
9
	state="error"
10
	# set notify-send option to indicate an error
11
fi
12
13
notify-send $notify_opts "$1 finished running ($state)" "'$*' ran until `date` and exited with status $result."