summaryrefslogtreecommitdiff
path: root/src/clock
diff options
context:
space:
mode:
Diffstat (limited to 'src/clock')
-rwxr-xr-xsrc/clock33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/clock b/src/clock
new file mode 100755
index 0000000..250c028
--- /dev/null
+++ b/src/clock
@@ -0,0 +1,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")"