summaryrefslogtreecommitdiffstats
path: root/builder/modules.d/slx-dmsetup/scripts/get-partitions-by-id
diff options
context:
space:
mode:
Diffstat (limited to 'builder/modules.d/slx-dmsetup/scripts/get-partitions-by-id')
-rwxr-xr-xbuilder/modules.d/slx-dmsetup/scripts/get-partitions-by-id60
1 files changed, 0 insertions, 60 deletions
diff --git a/builder/modules.d/slx-dmsetup/scripts/get-partitions-by-id b/builder/modules.d/slx-dmsetup/scripts/get-partitions-by-id
deleted file mode 100755
index 2fe5ce7a..00000000
--- a/builder/modules.d/slx-dmsetup/scripts/get-partitions-by-id
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/env bash
-#
-# Get all partitions with given ids (list of /dev/sdXX)
-# Examples of supported ID types:
-# * MBR's type: 44
-# * GPT's UUID: 0657fd6d-a4ab-43c4-84e5-0933c84b4f4f (swap)
-# * GPT's Name: OpenSLX-ID44
-#
-# First argument can be a block device to limit the search to
-# partitions thereof, e.g. for /dev/loop0 to look for /dev/loop0pX
-#
-# NOTE: for compatibility reasons, MBR's type will also
-# be matched against part name 'OpenSLX-ID<id>'.
-# The output will be a list of matching devices,
-# sorted from largest to smallest.
-get_partitions_by_id () {
- local ID dev exp target
- exp=
- # target for the scan, defaults to /dev to check everything
- target=/dev
- if [ -b "$1" ]; then
- target="$1"'*'
- shift
- fi
- # support commas and pipes to separate identifiers
- local args=$@
- set -- ${args//[,|]/ }
- while [ $# -gt 0 ]; do
- ID=$1
- shift
- [ -z "$ID" ] && continue
- # if single digit, e.g. 7, look for 0x7 and 0x07
- [[ $ID =~ ^[0-9]$ ]] && ID="0?$ID"
- if [[ $ID =~ ^[0-9]{2}$ ]]; then
- # if double digit look for MBR types and OpenSLX-ID$ID GPT labels
- exp="$exp|ID_PART_ENTRY_(NAME=OpenSLX-ID|TYPE=0x)$ID"
- elif [[ $ID =~ ^(0x[0-9]{2}|[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})$ ]]; then
- # if full MBR type (e.g. 0x44) or UUID look for TYPE
- exp="$exp|ID_PART_ENTRY_TYPE=$ID"
- else
- # something else, look for names of partitions / filesystems
- exp="$exp|ID_(PART_ENTRY_NAME|FS_LABEL)=$ID"
- fi
- done
- exp=${exp:1}
- #echo "Partition find is '$exp'" >&2
- for dev in $(find $target -type b); do
- udevadm info --name="$dev" | grep -iqE "($exp)\$" \
- && echo "$(blockdev --getsize64 "$dev") $dev"
- done | sort -n -k1 -r | cut -d' ' -f2
-}
-
-## MAIN
-if [ $# -eq 0 ]; then
- echo "$0 needs at least one argument."
- exit 1
-fi
-
-get_partitions_by_id $@
-