Zachary Kotlarek 13 лет назад
Родитель
Сommit
7c8ce0c5a1
1 измененных файлов с 39 добавлено и 21 удалено
  1. 39 21
      mountMedia

+ 39 - 21
mountMedia

@@ -2,29 +2,47 @@
 
 HOST="vera.uberzach.com"
 
-if ! ~/bin/video/isMediaMounted; then
+function findMedia {
+	MEDIA=""
+	for i in /Volumes/media*; do
+		if [ -d "${i}" ] && [ -d "${i}/TV" ]; then
+			MEDIA="${i}"
+		fi
+	done
+}
 
-	# Check for connectivity (and server live-ness)
-	if ! ~/bin/video/timeout -t 2 nc -z "${HOST}" 139 >/dev/null 2>&1; then
-		echo "`basename "${0}"`: Host not available: ${HOST}" 1>&2
-		exit 1
-	fi
+# Skip this whole shebang if we've got valid links
+if ~/bin/video/isMediaMounted; then
+	exit 0
+fi
 
-	# Connect and fix links
-	osascript -e \
-		'tell application "Finder"
-			if ((count of (every disk whose (displayed name contains "media" and local volume is false))) < 1) then
-				mount volume "smb://atv@'"${HOST}"'/media"
-			end if
-		end tell'
-	if [ -e '/Applications/Zach/Utilities/FixSMBLinks.app' ]; then
-		open '/Applications/Zach/Utilities/FixSMBLinks.app'
-	fi
-	sleep 1
+# Check for connectivity (and server live-ness)
+if ! ~/bin/video/timeout -t 2 nc -z "${HOST}" 139 >/dev/null 2>&1; then
+	echo "`basename "${0}"`: Host not available: ${HOST}" 1>&2
+	exit 1
+fi
 
-	# Re-check to see if it worked
-	if ! ~/bin/video/isMediaMounted; then
-		echo "`basename "${0}"`: Unable to mount media volume" 1>&2
-		exit 1
+# Connect as needed
+findMedia
+if [ -z "${MEDIA}" ]; then
+	osascript -e 'tell application "Finder" to mount volume "smb://atv@'"${HOST}"'/media"'
+	sleep 5
+fi
+
+# Fix links
+findMedia
+if [ -n "${MEDIA}" ]; then
+	if [ -d /mnt ]; then
+		if [ -h /mnt/media ]; then
+			rm -f /mnt/media
+		fi
+		ln -s "${MEDIA}" /mnt/media
+	fi
+	if [ -e "${HOME}/media" ]; then
+		rm -f "${HOME}/media"
+		ln -s "${MEDIA}" "${HOME}/media"
 	fi
+else
+	echo "`basename "${0}"`: Unable to mount media volume" 1>&2
+	exit 1
 fi