|
|
@@ -0,0 +1,49 @@
|
|
|
+#!/bin/bash
|
|
|
+
|
|
|
+# Config
|
|
|
+EXEC_DIR="${HOME}/bin/video"
|
|
|
+TEMP_DIR="`getconf DARWIN_USER_TEMP_DIR`"
|
|
|
+
|
|
|
+# Sanity check
|
|
|
+if [ ! -d "${EXEC_DIR}" ] || [ ! -d "${TEMP_DIR}" ]; then
|
|
|
+ echo "Bad config" 1>&2
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+# Determine who we are
|
|
|
+MODE="PLAYING"
|
|
|
+CMD="plex-playing"
|
|
|
+if basename "${0}" | grep -qi GUI; then
|
|
|
+ MODE="GUI"
|
|
|
+ CMD="plex-gui"
|
|
|
+fi
|
|
|
+
|
|
|
+# Construct our runtime paths
|
|
|
+DATA_DIR="${TEMP_DIR}/plexMonitor"
|
|
|
+TEMP_FILE="`mktemp -t plexMonitor.XXXXXXXX`"
|
|
|
+
|
|
|
+# Get into position
|
|
|
+if [ ! -d "${DATA_DIR}" ]; then
|
|
|
+ mkdir "${DATA_DIR}"
|
|
|
+fi
|
|
|
+cd "${DATA_DIR}"
|
|
|
+
|
|
|
+# Compare the current state to the last one
|
|
|
+CHANGED=1
|
|
|
+"${EXEC_DIR}/${CMD}" > "${TEMP_FILE}"
|
|
|
+if [ -r "${MODE}" ]; then
|
|
|
+ diff "${TEMP_FILE}" "${MODE}" > /dev/null
|
|
|
+ if [ $? -eq 0 ]; then
|
|
|
+ CHANGED=0
|
|
|
+ fi
|
|
|
+fi
|
|
|
+
|
|
|
+# If anything changed, note the update time and store the current state for future reference
|
|
|
+if [ $CHANGED -gt 0 ]; then
|
|
|
+ date '+%s' > "${MODE}.lastUpdate"
|
|
|
+ mv "${TEMP_FILE}" "${MODE}"
|
|
|
+fi
|
|
|
+
|
|
|
+# Cleanup
|
|
|
+rm -f "${TEMP_FILE}"
|
|
|
+exit 0
|