mirror of
https://github.com/samuelncui/yatm.git
synced 2026-11-08 12:26:33 +00:00
23 lines
691 B
Bash
Executable File
23 lines
691 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
DEVICE=$(readlink -f -- "${DEVICE}")
|
|
REGEXP='^/dev/n?st([0-9]+)[alm]?$'
|
|
|
|
if [[ ! $DEVICE =~ $REGEXP ]]; then
|
|
echo "'$DEVICE' doesn't match" >&2
|
|
exit 1
|
|
fi
|
|
|
|
NUM="${BASH_REMATCH[1]}"
|
|
# sg_map opens devices and omits the Tape mapping while LTFS holds the SG device.
|
|
# The kernel mapping remains available throughout mount and unmount.
|
|
DEVICE_PATH=$(readlink -f -- "/sys/class/scsi_tape/st${NUM}/device")
|
|
shopt -s nullglob
|
|
SG_DEVICES=("${DEVICE_PATH}"/scsi_generic/sg*)
|
|
if [[ ${#SG_DEVICES[@]} -ne 1 || ! -d ${SG_DEVICES[0]} ]]; then
|
|
echo "'$DEVICE' has no unique SCSI generic device" >&2
|
|
exit 1
|
|
fi
|
|
printf '/dev/%s\n' "${SG_DEVICES[0]##*/}"
|