Put existing functionality into 'list' verb

master
BrainwreckedTech 3 years ago
parent 391ad63035
commit 40eeebb3da

@ -1,34 +1,24 @@
#!/bin/sh #!/bin/sh
case "${1}" in
list)
# GET THE INITITAL OUTPUT OF `ls /sys/block` # GET THE INITITAL OUTPUT OF `ls /sys/block`
BLK_INFO="$(ls -l --color=never /sys/block | grep -v virtual | grep devices | sed 's/ \+/ /g' | cut -d\ -f9-)" BLK_INFO="$(ls -l --color=never /sys/block | grep -v virtual | grep devices | sed 's/ \+/ /g' | cut -d\ -f9-)"
# STRIP OFF THE PCI BUS LOCATION INFORMATION # STRIP OFF THE PCI BUS LOCATION INFORMATION
BLK_INFO="$(echo "${BLK_INFO}" | sed 's|\.\.\/devices/pci[0-9a-f:]\{7\}\(/[0-9a-f:.]\{12\}\)\+/||g')" BLK_INFO="$(echo "${BLK_INFO}" | sed 's|\.\.\/devices/pci[0-9a-f:]\{7\}\(/[0-9a-f:.]\{12\}\)\+/||g')"
# STRIP OFF THE SUPERFLUOUS USB HOST INFORMATION # STRIP OFF THE SUPERFLUOUS USB HOST INFORMATION
BLK_INFO="$(echo "${BLK_INFO}" | sed 's|\(usb[0-9]\+\)/.*/host|\1/host|g')" BLK_INFO="$(echo "${BLK_INFO}" | sed 's|\(usb[0-9]\+\)/.*/host|\1/host|g')"
# STRIP OFF THE SUPERFLUOUS HOST AND TARGET INFORMATION # STRIP OFF THE SUPERFLUOUS HOST AND TARGET INFORMATION
BLK_INFO="$(echo "${BLK_INFO}" | sed 's|/host[0-9]\+/target\([0-9]\+\):\([0-9]\+\):\([0-9]\+\)/|/|g')" BLK_INFO="$(echo "${BLK_INFO}" | sed 's|/host[0-9]\+/target\([0-9]\+\):\([0-9]\+\):\([0-9]\+\)/|/|g')"
# NORMALIZE NVME INFO # NORMALIZE NVME INFO
BLK_INFO="$(echo "${BLK_INFO}" | sed 's|nvme/nvme\([0-9]\+\)/nvme\([0-9]\+\)n\([0-9]\+\)|nvme/N:\2:\3:1|g')" BLK_INFO="$(echo "${BLK_INFO}" | sed 's|nvme/nvme\([0-9]\+\)/nvme\([0-9]\+\)n\([0-9]\+\)|nvme/N:\2:\3:1|g')"
# STRIP OFF BLOCKS # STRIP OFF BLOCKS
BLK_INFO="$(echo "${BLK_INFO}" | sed 's|/block/.*||g')" BLK_INFO="$(echo "${BLK_INFO}" | sed 's|/block/.*||g')"
# CONVERT -> TO A SPACE # CONVERT -> TO A SPACE
BLK_INFO="$(echo "${BLK_INFO}" | sed 's/ -> / /g')" BLK_INFO="$(echo "${BLK_INFO}" | sed 's/ -> / /g')"
# CONVERT / TO A SPACE # CONVERT / TO A SPACE
BLK_INFO="$(echo "${BLK_INFO}" | sed 's|/| |g')" BLK_INFO="$(echo "${BLK_INFO}" | sed 's|/| |g')"
# SWAP COLUMNS
# BLK_INFO="$(echo "${BLK_INFO}" | awk '{t=$1; $1=$2; $2=t; print;}')"
# NOW GET DEVICE IDs and SIZES # NOW GET DEVICE IDs and SIZES
echo "${BLK_INFO}" | while read -r BLOCKDEV DEV_PORT DEV_HCIL; do echo "${BLK_INFO}" | while read -r BLOCKDEV DEV_PORT DEV_HCIL; do
DEVICE_ID="$(ls -l --color=never /dev/disk/by-id | sed 's/ \+/ /g' | grep -v 'nvme-eui\|wwn-' | grep "${BLOCKDEV}$" | cut -d\ -f9)" DEVICE_ID="$(ls -l --color=never /dev/disk/by-id | sed 's/ \+/ /g' | grep -v 'nvme-eui\|wwn-' | grep "${BLOCKDEV}$" | cut -d\ -f9)"
DEV_BYTES="$(lsblk -bnPo NAME,SIZE | grep "\"${BLOCKDEV}\"" | cut -d\" -f 4)" DEV_BYTES="$(lsblk -bnPo NAME,SIZE | grep "\"${BLOCKDEV}\"" | cut -d\" -f 4)"
@ -47,6 +37,8 @@ echo "${BLK_INFO}" | while read -r BLOCKDEV DEV_PORT DEV_HCIL; do
fi fi
echo "${DEV_HCIL} ${DEV_PORT} ${BLOCKDEV} ${DEVICE_SZ} ${DEVICE_ID}" >> /tmp/bdmap echo "${DEV_HCIL} ${DEV_PORT} ${BLOCKDEV} ${DEVICE_SZ} ${DEVICE_ID}" >> /tmp/bdmap
done done
column -N H:C:I:L,PORT,DEV,SIZE,NAME -t -R2,4 -o" " /tmp/bdmap column -N H:C:I:L,PORT,DEV,SIZE,NAME -t -R2,4 -o" " /tmp/bdmap
rm /tmp/bdmap rm /tmp/bdmap
;;
*) echo "Unknown verb '${1}' -- expected delete, list, or rescan"; exit 1;;
esac

Loading…
Cancel
Save