From 54c4e0c3140db9cb4d16528a879387a29a2e90ce Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Sun, 6 Mar 2022 01:10:20 +0000 Subject: [PATCH] dvdrip-monitor: New program to keep track of what's going on. --- Makefile | 1 + dvdrip-monitor | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100755 dvdrip-monitor diff --git a/Makefile b/Makefile index 5be9cfc..eecede2 100644 --- a/Makefile +++ b/Makefile @@ -47,6 +47,7 @@ dvd-id_SRCS = dvd-id.c lib.c multiprogress.c SCRIPTS += dvdrip SCRIPTS += dvdrip-upload +SCRIPTS += dvdrip-monitor %.o: %.c $(call v-tag,CC)$(CC) -c $(CFLAGS) -o$@ -MD -MF $*.dep $< diff --git a/dvdrip-monitor b/dvdrip-monitor new file mode 100755 index 0000000..eb3415c --- /dev/null +++ b/dvdrip-monitor @@ -0,0 +1,32 @@ +#! /bin/sh -e + +tmp=${DVDRIP_TMPDIR-${HOME?}/tmp/dvdrip} + +case "$#" in 0) set -- /dev/sr[0-9]* ;; esac +cls=$(tput clear) +nl=" +" + +last=: +while :; do + unset out + for dev in "$@"; do + label=$(lsblk -dn -oLABEL "$dev" 2>&1 || echo "(error)") + dev_id=$(stat -c%t:%T "$dev") + dest="(inactive)" + for i in "$tmp"/*/device; do + if [ ! -f "$i" ]; then continue; fi + d=$(cat "$i"); id=$(stat -c%t:%T "$d") + case $id in + "$dev_id") + for j in dest.new dest dest.seen; do + if dest=$(cat "${i%/device}/$j"); then break; fi + done + ;; + esac + done + out=${out+$out$nl}$(printf "%-6s %-32s %s\n" "${dev#/dev/}" "$label" "$dest") + done + case $out in "$last") ;; *) echo -n "$cls$out"; last=$out ;; esac + sleep 1 +done -- 2.11.0