| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #!/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 -p "${DATA_DIR}"
- fi
- cd "${DATA_DIR}"
- # Compare the current state to the last one
- CHANGED=1
- "${EXEC_DIR}/${CMD}" > "${TEMP_FILE}" 2>/dev/null
- 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
|