| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #!/bin/bash
- # Ensure we have a valid TMPDIR
- if [ ! -d "${TMPDIR}" ]; then
- TMPDIR="`getconf DARWIN_USER_TEMP_DIR 2>/dev/null`"
- if [ ! -d "${TMPDIR}" ]; then
- TMPDIR="/var/tmp"
- fi
- if [ ! -d "${TMPDIR}" ]; then
- TMPDIR="/tmp"
- fi
- fi
- # Config
- HOST="vera.uberzach.com"
- SHARE="media"
- LOCK="${TMPDIR}/mountMedia.mounting"
- REMOTE_USER="${USER}"
- # Hack for mismatched usernames
- if [ "${USER}" == "tv" ]; then
- REMOTE_USER="atv"
- fi
- function findMedia {
- MEDIA=""
- for i in "/Volumes/${SHARE}"*; do
- if [ -d "${i}" ] && [ -d "${i}/TV" ]; then
- MEDIA="${i}"
- fi
- done
- }
- # Skip this whole shebang if we've got valid links
- if ~/bin/video/isMediaMounted; then
- exit 0
- fi
- # 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
- # Connect as needed
- findMedia
- if [ -z "${MEDIA}" ]; 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}"
- osascript -e 'tell application "Finder" to mount volume "smb://'"${REMOTE_USER}@${HOST}/${SHARE}"'"'
- sleep 5
- rm -f "${LOCK}"
- fi
- fi
- # Fix links
- findMedia
- if [ -n "${MEDIA}" ]; then
- if [ -d /mnt ]; then
- if [ -e /mnt/media ] || [ -h /mnt/media ]; then
- rm -f /mnt/media
- fi
- ln -s "${MEDIA}" /mnt/media
- fi
- if [ -e "${HOME}/media" ] || [ -h "${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
- # Add a "Baldwin RAID" link as needed
- if [ ! -h '/Volumes/Baldwin RAID' ]; then
- ln -s / '/Volumes/Baldwin RAID'
- fi
|