|
@@ -37,6 +37,11 @@ if [ "${USER}" == "tv" ]; then
|
|
|
REMOTE_USER="atv"
|
|
REMOTE_USER="atv"
|
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
|
|
+function cleanup {
|
|
|
|
|
+ rm -f "${LOCK}"
|
|
|
|
|
+ exit $1
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
function findMedia {
|
|
function findMedia {
|
|
|
MEDIA=""
|
|
MEDIA=""
|
|
|
|
|
|
|
@@ -60,9 +65,24 @@ function writeLinks {
|
|
|
if [ -e "${HOME}/media" ] || [ -h "${HOME}/media" ]; then
|
|
if [ -e "${HOME}/media" ] || [ -h "${HOME}/media" ]; then
|
|
|
rm -f "${HOME}/media"
|
|
rm -f "${HOME}/media"
|
|
|
ln -s "${DEST}" "${HOME}/media"
|
|
ln -s "${DEST}" "${HOME}/media"
|
|
|
|
|
+ else
|
|
|
|
|
+ echo "No such path: ${HOME}/media" 1>&2
|
|
|
|
|
+ cleanup 1
|
|
|
fi
|
|
fi
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+# Lock
|
|
|
|
|
+touch "${LOCK}"
|
|
|
|
|
+read MOUNT_PID < "${LOCK}"
|
|
|
|
|
+if [ -n "${MOUNT_PID}" ]; then
|
|
|
|
|
+ if ps -A -o pid | grep -q "${MOUNT_PID}"; then
|
|
|
|
|
+ sleep 5
|
|
|
|
|
+ exit 1
|
|
|
|
|
+ fi
|
|
|
|
|
+fi
|
|
|
|
|
+echo $$ > "${LOCK}"
|
|
|
|
|
+export MEDIA_MOUNTING=$$
|
|
|
|
|
+
|
|
|
# Determine if we have a remote link
|
|
# Determine if we have a remote link
|
|
|
if [ -h "${HOME}/media" ] && readlink "${HOME}/media" | grep -qE "^${LOCAL_MEDIA}"; then
|
|
if [ -h "${HOME}/media" ] && readlink "${HOME}/media" | grep -qE "^${LOCAL_MEDIA}"; then
|
|
|
LOCAL_LINK=1
|
|
LOCAL_LINK=1
|
|
@@ -70,7 +90,7 @@ fi
|
|
|
|
|
|
|
|
# Skip this whole shebang if we've got a valid, remote link
|
|
# Skip this whole shebang if we've got a valid, remote link
|
|
|
if [ $LOCAL_LINK -eq 0 ] && [ $FORCE -eq 0 ] && ~/bin/video/isMediaMounted; then
|
|
if [ $LOCAL_LINK -eq 0 ] && [ $FORCE -eq 0 ] && ~/bin/video/isMediaMounted; then
|
|
|
- exit 0
|
|
|
|
|
|
|
+ cleanup 0
|
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
# Check for connectivity and server live-ness
|
|
# Check for connectivity and server live-ness
|
|
@@ -87,26 +107,14 @@ fi
|
|
|
|
|
|
|
|
# At this point any valid link is acceptable
|
|
# At this point any valid link is acceptable
|
|
|
if [ $FORCE -eq 0 ] && ~/bin/video/isMediaMounted; then
|
|
if [ $FORCE -eq 0 ] && ~/bin/video/isMediaMounted; then
|
|
|
- exit 0
|
|
|
|
|
|
|
+ cleanup 0
|
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
# Connect if needed and possible
|
|
# Connect if needed and possible
|
|
|
findMedia
|
|
findMedia
|
|
|
if [ -z "${MEDIA}" ] && [ $OFFLINE -eq 0 ]; then
|
|
if [ -z "${MEDIA}" ] && [ $OFFLINE -eq 0 ]; then
|
|
|
- LOCKED=0
|
|
|
|
|
- touch "${LOCK}"
|
|
|
|
|
- read MOUNT_PID < "${LOCK}"
|
|
|
|
|
- if [ -n "${MOUNT_PID}" ]; then
|
|
|
|
|
- if ps -A -o pid | grep -q "${MOUNT_PID}"; then
|
|
|
|
|
- LOCKED=1
|
|
|
|
|
- fi
|
|
|
|
|
- fi
|
|
|
|
|
- if [ $LOCKED -eq 0 ]; then
|
|
|
|
|
- echo $$ > "${LOCK}"
|
|
|
|
|
- ~/bin/video/timeout -t 30 osascript -e 'tell application "Finder" to mount volume "smb://'"${REMOTE_USER}@${HOST}/${SHARE}"'"'
|
|
|
|
|
- sleep 5
|
|
|
|
|
- rm -f "${LOCK}"
|
|
|
|
|
- fi
|
|
|
|
|
|
|
+ ~/bin/video/timeout -t 30 osascript -e 'tell application "Finder" to mount volume "smb://'"${REMOTE_USER}@${HOST}/${SHARE}"'"'
|
|
|
|
|
+ sleep 5
|
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
# Create links to the best media we can find
|
|
# Create links to the best media we can find
|
|
@@ -115,5 +123,8 @@ if [ -n "${MEDIA}" ]; then
|
|
|
writeLinks "${MEDIA}"
|
|
writeLinks "${MEDIA}"
|
|
|
else
|
|
else
|
|
|
echo "`basename "${0}"`: Unable to link media volume" 1>&2
|
|
echo "`basename "${0}"`: Unable to link media volume" 1>&2
|
|
|
- exit 1
|
|
|
|
|
|
|
+ cleanup 1
|
|
|
fi
|
|
fi
|
|
|
|
|
+
|
|
|
|
|
+# Exit cleanly
|
|
|
|
|
+cleanup 0
|