summaryrefslogtreecommitdiff
path: root/src/clock
blob: 250c028d8fcd876baeb2a0ab22ec1335752f4e58 (plain) (blame)
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
27
28
29
30
31
32
33
#!/bin/sh
set -eu

usage() {
	cat <<-'EOF'
		Usage:
		  clock [-o FILE] [--] CMD...
	EOF
}

OUTPUT=/dev/stdout
while getopts 'o:' flag; do
	case "$flag" in
		(o)
			OUTPUT="$OPTARG"
			;;
		(*)
			usage >&2
			exit 2
			;;
	esac
done
shift $((OPTIND - 1))


STATUS_F="$(mkstemp)"
trap 'rm -f "$STATUS_F"' EXIT

START="$(now -E)"
statusf "$STATUS_F" "$@"
END="$(now -E)"
printf '%s %s' "$END" "$START" | awk '{ printf "%f\n", $1 - $2 }' > "$OUTPUT"
exit "$(cat "$STATUS_F")"