#!/usr/bin/env bash set -Eeuo pipefail IFS=$'\n\t' log() { printf '%s\n' "$*"; } log_err() { printf 'ERR: %s\n' "$*" >&2; } usage() { cat <<'USG' Usage: mount_brain.sh [VOLUME_NAME] Default VOLUME_NAME: Brain Attempts: diskutil mount by name, then best-effort by scanning identifiers. Idempotent: no-op if already mounted at /Volumes/. USG } NAME=${1:-Brain} MOUNTPOINT="/Volumes/${NAME}" if [[ -d "$MOUNTPOINT" && -e "$MOUNTPOINT" ]]; then log "Volume already mounted: $MOUNTPOINT" exit 0 fi if diskutil list | grep -q "[[:space:]]${NAME}[[:space:]]*$"; then if diskutil mount "$NAME" >/dev/null 2>&1; then log "Mounted by name: $NAME" exit 0 fi fi # Fallback: try to locate an APFS Volume with this name and mount its device IDENT=$(diskutil list | awk -v n="$NAME" 'toupper($0) ~ toupper(n) && $0 ~ /APFS|HFS|Volume/ {dev=$NF} END{print dev}') if [[ -n "${IDENT}" ]]; then if diskutil mount "/dev/${IDENT}" >/dev/null 2>&1; then log "Mounted by identifier: /dev/${IDENT}" exit 0 fi fi log_err "Unable to mount volume: ${NAME}" exit 1