replace grep and cut with rg

This commit is contained in:
Tobias Powalowski 2024-06-28 09:27:09 +02:00
parent eb1ed34d01
commit ebdafe55ea
2 changed files with 84 additions and 96 deletions

View file

@ -49,7 +49,7 @@ _bcfs_select_raid_devices () {
_BCFS_RAID_DEVS="" _BCFS_RAID_DEVS=""
#shellcheck disable=SC2001,SC2086 #shellcheck disable=SC2001,SC2086
for i in ${_DEVS}; do for i in ${_DEVS}; do
echo "${i}" | grep -q /dev && _BCFS_RAID_DEVS="${_BCFS_RAID_DEVS} ${i} _ " echo "${i}" | rg -q /dev && _BCFS_RAID_DEVS="${_BCFS_RAID_DEVS} ${i} _ "
done done
_BCFS_RAID_DEVS=${_BCFS_RAID_DEVS//${_BCFS_RAID_DEV} _/} _BCFS_RAID_DEVS=${_BCFS_RAID_DEVS//${_BCFS_RAID_DEV} _/}
_RAIDNUMBER=1 _RAIDNUMBER=1

View file

@ -29,20 +29,20 @@ _getpartlabel()
# lists linux blockdevices # lists linux blockdevices
_blockdevices() { _blockdevices() {
# all available block disk devices # all available block disk devices
for dev in $(${_LSBLK} NAME,TYPE | grep "disk$" | cut -d ' ' -f1); do for dev in $(${_LSBLK} NAME,TYPE | rg '(.*) disk$' -r '$1'); do
# exclude checks: # exclude checks:
#- iso9660 devices #- iso9660 devices
# (${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | grep "iso9660" # (${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | rg 'iso9660'
#- fakeraid isw devices #- fakeraid isw devices
# ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | grep "isw_raid_member" # ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | rg 'isw_raid_member'
#- fakeraid ddf devices #- fakeraid ddf devices
# ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | grep "ddf_raid_member" # ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | rg 'ddf_raid_member'
# - zram devices # - zram devices
# echo "${dev}" | grep -q 'zram' # echo "${dev}" | rg -q 'zram'
if ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | grep -q "iso9660" &&\ if ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'iso9660' &&\
! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | grep -q "isw_raid_member" &&\ ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'isw_raid_member' &&\
! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | grep -q "ddf_raid_member" &&\ ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'ddf_raid_member' &&\
! echo "${dev}" | grep -q 'zram'; then ! echo "${dev}" | rg -q 'zram'; then
${_LSBLK} NAME,SIZE -d "${dev}" ${_LSBLK} NAME,SIZE -d "${dev}"
fi fi
done done
@ -51,29 +51,29 @@ _blockdevices() {
# lists linux blockdevice partitions # lists linux blockdevice partitions
_blockdevices_partitions() { _blockdevices_partitions() {
# all available block devices partitions # all available block devices partitions
for dev in $(${_LSBLK} NAME,TYPE | grep -v '^/dev/md' | grep "part$"| cut -d ' ' -f1); do for dev in $(${_LSBLK} NAME,TYPE | rg -v '^/dev/md' | rg '(.*) parts$' -r '$1'); do
# exclude checks: # exclude checks:
#- part of raid device #- part of raid device
# ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | grep "linux_raid_member" # ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | rg 'linux_raid_member'
#- part of lvm2 device #- part of lvm2 device
# ${_LSBLK} FSTYPE /dev/${dev} 2>"${_NO_LOG}" | grep "LVM2_member" # ${_LSBLK} FSTYPE /dev/${dev} 2>"${_NO_LOG}" | rg 'LVM2_member'
#- part of luks device #- part of luks device
# ${_LSBLK} FSTYPE /dev/${dev} 2>"${_NO_LOG}" | grep "crypto_LUKS" # ${_LSBLK} FSTYPE /dev/${dev} 2>"${_NO_LOG}" | rg 'crypto_LUKS'
#- extended partition #- extended partition
# sfdisk -l 2>"${_NO_LOG}" | grep "${dev}" | grep "Extended$" # sfdisk -l 2>"${_NO_LOG}" | rg "${dev}" | rg 'Extended$'
# - extended partition (LBA) # - extended partition (LBA)
# sfdisk -l 2>"${_NO_LOG}" | grep "${dev}" | grep "(LBA)$" # sfdisk -l 2>"${_NO_LOG}" | rg "${dev}" | rg '\(LBA\)$'
#- bios_grub partitions #- bios_grub partitions
# sfdisk -l 2>"${_NO_LOG}" | grep "${dev}" | grep -q "BIOS boot$" # sfdisk -l 2>"${_NO_LOG}" | rg "${dev}" | rg -q 'BIOS boot$'
#- iso9660 devices #- iso9660 devices
# "${_LSBLK} FSTYPE -s ${dev} | grep "iso9660" # "${_LSBLK} FSTYPE -s ${dev} | rg "iso9660"
if ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | grep -q "linux_raid_member" &&\ if ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'linux_raid_member' &&\
! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | grep -q "LVM2_member" &&\ ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'LVM2_member' &&\
! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | grep -q "crypto_LUKS" &&\ ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'crypto_LUKS' &&\
! ${_LSBLK} FSTYPE -s "${dev}" 2>"${_NO_LOG}" | grep -q "iso9660" &&\ ! ${_LSBLK} FSTYPE -s "${dev}" 2>"${_NO_LOG}" | rg -q 'iso9660' &&\
! sfdisk -l 2>"${_NO_LOG}" | grep "${dev}" | grep -q "Extended$" &&\ ! sfdisk -l 2>"${_NO_LOG}" | rg "${dev}" | rg -q 'Extended$' &&\
! sfdisk -l 2>"${_NO_LOG}" | grep "${dev}" | grep -q "(LBA)$" &&\ ! sfdisk -l 2>"${_NO_LOG}" | rg "${dev}" | rg -q '\(LBA\)$' &&\
! sfdisk -l 2>"${_NO_LOG}" | grep "${dev}" | grep -q "BIOS boot$"; then ! sfdisk -l 2>"${_NO_LOG}" | rg "${dev}" | rg -q 'BIOS boot$'; then
${_LSBLK} NAME,SIZE -d "${dev}" ${_LSBLK} NAME,SIZE -d "${dev}"
fi fi
done done
@ -81,20 +81,20 @@ _blockdevices_partitions() {
# list none partitionable raid md devices # list none partitionable raid md devices
_raid_devices() { _raid_devices() {
for dev in $(${_LSBLK} NAME,TYPE | grep " raid.*$\| linear$" | cut -d ' ' -f 1 | sort -u); do for dev in $(${_LSBLK} NAME,TYPE | rg '(.*) raid.*$|(.*) linear$' -r '$1' | sort -u); do
# exclude checks: # exclude checks:
# - part of lvm2 device_found # - part of lvm2 device_found
# ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | grep "LVM2_member" # ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | rg 'LVM2_member'
# - part of luks device # - part of luks device
# ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | grep "crypto_LUKS" # ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | rg 'crypto_LUKS'
# - part of isw fakeraid # - part of isw fakeraid
# ${_LSBLK} FSTYPE ${dev} -s 2>"${_NO_LOG}" | grep "isw_raid_member" # ${_LSBLK} FSTYPE ${dev} -s 2>"${_NO_LOG}" | rg 'isw_raid_member'
# - part of ddf fakeraid # - part of ddf fakeraid
# ${_LSBLK} FSTYPE ${dev} -s 2>"${_NO_LOG}" | grep "ddf_raid_member" # ${_LSBLK} FSTYPE ${dev} -s 2>"${_NO_LOG}" | rg 'ddf_raid_member'
if ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | grep -q "LVM2_member" &&\ if ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'LVM2_member' &&\
! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | grep -q "crypto_LUKS" &&\ ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'crypto_LUKS' &&\
! ${_LSBLK} FSTYPE "${dev}" -s 2>"${_NO_LOG}" | grep -q "isw_raid_member" &&\ ! ${_LSBLK} FSTYPE "${dev}" -s 2>"${_NO_LOG}" | rg -q 'isw_raid_member' &&\
! ${_LSBLK} FSTYPE "${dev}" -s 2>"${_NO_LOG}" | grep -q "ddf_raid_member" &&\ ! ${_LSBLK} FSTYPE "${dev}" -s 2>"${_NO_LOG}" | rg -q 'ddf_raid_member' &&\
! find "$dev"*p* -type f -exec echo {} \; 2>"${_NO_LOG}"; then ! find "$dev"*p* -type f -exec echo {} \; 2>"${_NO_LOG}"; then
${_LSBLK} NAME,SIZE -d "${dev}" ${_LSBLK} NAME,SIZE -d "${dev}"
fi fi
@ -103,56 +103,44 @@ _raid_devices() {
# lists linux partitionable raid devices partitions # lists linux partitionable raid devices partitions
_partitionable_raid_devices_partitions() { _partitionable_raid_devices_partitions() {
for dev in $(${_LSBLK} NAME,TYPE | grep "part$" | grep "^/dev/md.*p" 2>"${_NO_LOG}" | cut -d ' ' -f 1 | sort -u) ; do for dev in $(${_LSBLK} NAME,TYPE | rg 'part$' | rg -o '(^/dev/md.*p.*) ' -r '$1' 2>"${_NO_LOG}" | sort -u) ; do
# exclude checks: # exclude checks:
# - part of lvm2 device_found # - part of lvm2 device_found
# ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | grep "LVM2_member" # ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | rg 'LVM2_member'
# - part of luks device # - part of luks device
# ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | grep "crypto_LUKS" # ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | rg 'crypto_LUKS'
# - extended partition # - extended partition
# sfdisk -l 2>"${_NO_LOG}" 2>"${_NO_LOG}" | grep "${dev}" | grep "Extended$" # sfdisk -l 2>"${_NO_LOG}" 2>"${_NO_LOG}" | rg "${dev}" | rg 'Extended$'
# - extended partition (LBA) # - extended partition (LBA)
# sfdisk -l 2>"${_NO_LOG}" 2>"${_NO_LOG}" | grep "${dev}" | grep "(LBA)$" # sfdisk -l 2>"${_NO_LOG}" 2>"${_NO_LOG}" | rg "${dev}" | rg '\(LBA\)$'
# - part of isw fakeraid # - part of isw fakeraid
# ${_LSBLK} FSTYPE ${dev} -s 2>"${_NO_LOG}" | grep "isw_raid_member" # ${_LSBLK} FSTYPE ${dev} -s 2>"${_NO_LOG}" | rg 'isw_raid_member'
# - part of ddf fakeraid # - part of ddf fakeraid
# ${_LSBLK} FSTYPE ${dev} -s 2>"${_NO_LOG}" | grep "ddf_raid_member" # ${_LSBLK} FSTYPE ${dev} -s 2>"${_NO_LOG}" | rg 'ddf_raid_member'
if ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | grep -q "LVM2_member" &&\ if ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'LVM2_member' &&\
! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | grep -q "crypto_LUKS" &&\ ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'crypto_LUKS' &&\
! sfdisk -l 2>"${_NO_LOG}" | grep "${dev}" | grep -q "Extended$" &&\ ! sfdisk -l 2>"${_NO_LOG}" | rg "${dev}" | rg -q 'Extended$' &&\
! sfdisk -l 2>"${_NO_LOG}" | grep "${dev}" | grep -q "(LBA)$" &&\ ! sfdisk -l 2>"${_NO_LOG}" | rg "${dev}" | rg -q '\(LBA\)$' &&\
! ${_LSBLK} FSTYPE "${dev}" -s 2>"${_NO_LOG}" | grep -q "isw_raid_member" &&\ ! ${_LSBLK} FSTYPE "${dev}" -s 2>"${_NO_LOG}" | rg -q 'isw_raid_member' &&\
! ${_LSBLK} FSTYPE "${dev}" -s 2>"${_NO_LOG}" | grep -q "ddf_raid_member"; then ! ${_LSBLK} FSTYPE "${dev}" -s 2>"${_NO_LOG}" | rg -q 'ddf_raid_member'; then
${_LSBLK} NAME,SIZE -d "${dev}" ${_LSBLK} NAME,SIZE -d "${dev}"
fi fi
done done
} }
_dmraid_devices() { _dmraid_devices() {
# isw_raid_member, managed by mdadm # ddf_raid_member or isw_raid_member, managed by mdadm
for dev in $(${_LSBLK} NAME,TYPE | grep " raid.*$" | cut -d ' ' -f 1 | sort -u); do for dev in $(${_LSBLK} NAME,TYPE | rg "(.*) raid.*$" -r '$1' | sort -u); do
if ${_LSBLK} NAME,FSTYPE -s "${dev}" 2>"${_NO_LOG}" | grep -q "isw_raid_member$"; then if ${_LSBLK} NAME,FSTYPE -s "${dev}" 2>"${_NO_LOG}" | rg -q 'ddf_raid_member$|isw_raid_member$'; then
${_LSBLK} NAME,SIZE -d "${dev}"
fi
done
# ddf_raid_member, managed by mdadm
for dev in $(${_LSBLK} NAME,TYPE | grep " raid.*$" | cut -d ' ' -f 1 | sort -u); do
if ${_LSBLK} NAME,FSTYPE -s "${dev}" 2>"${_NO_LOG}" | grep -q "ddf_raid_member$"; then
${_LSBLK} NAME,SIZE -d "${dev}" ${_LSBLK} NAME,SIZE -d "${dev}"
fi fi
done done
} }
_dmraid_partitions() { _dmraid_partitions() {
# isw_raid_member, managed by mdadm # ddf_raid_member or isw_raid_member, managed by mdadm
for dev in $(${_LSBLK} NAME,TYPE | grep " md$" | cut -d ' ' -f 1 | sort -u); do for dev in $(${_LSBLK} NAME,TYPE | rg "(.*) md$" -r '$1' | sort -u); do
if ${_LSBLK} NAME,FSTYPE -s "${dev}" 2>"${_NO_LOG}" | grep "isw_raid_member$" | cut -d ' ' -f 1; then if ${_LSBLK} NAME,FSTYPE -s "${dev}" 2>"${_NO_LOG}" | rg 'ddf_raid_member$|isw_raid_member$'; then
${_LSBLK} NAME,SIZE -d "${dev}"
fi
done
# ddf_raid_member, managed by mdadm
for dev in $(${_LSBLK} NAME,TYPE | grep " md$" | cut -d ' ' -f 1 | sort -u); do
if ${_LSBLK} NAME,FSTYPE -s "${dev}" 2>"${_NO_LOG}" | grep "ddf_raid_member$" | cut -d ' ' -f 1; then
${_LSBLK} NAME,SIZE -d "${dev}" ${_LSBLK} NAME,SIZE -d "${dev}"
fi fi
done done
@ -162,20 +150,20 @@ _dmraid_partitions() {
# - show device mapper devices: # - show device mapper devices:
# lvm2 and cryptdevices # lvm2 and cryptdevices
_dm_devices() { _dm_devices() {
for dev in $(${_LSBLK} NAME,TYPE | grep -e "lvm$" -e "crypt$" | cut -d ' ' -f1 | sort -u); do for dev in $(${_LSBLK} NAME,TYPE | rg '(.*) lvm$|(.*) crypt$' -r '$1' | sort -u); do
# exclude checks: # exclude checks:
# - part of lvm2 device # - part of lvm2 device
# ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | grep "LVM2_member" # ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | rg 'LVM2_member'
# - part of luks device # - part of luks device
# ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | grep "crypto_LUKS" # ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | rg 'crypto_LUKS'
# - part of raid device # - part of raid device
# ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | grep "linux_raid_member$" # ${_LSBLK} FSTYPE ${dev} 2>"${_NO_LOG}" | rg 'linux_raid_member$'
# - part of running raid on encrypted device # - part of running raid on encrypted device
# ${_LSBLK} TYPE ${dev} 2>"${_NO_LOG}" | grep "raid.*$ # ${_LSBLK} TYPE ${dev} 2>"${_NO_LOG}" | rg "raid.*$
if ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | grep -q "crypto_LUKS$" &&\ if ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'crypto_LUKS$' &&\
! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | grep -q "LVM2_member$" &&\ ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'LVM2_member$' &&\
! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | grep -q "linux_raid_member$" &&\ ! ${_LSBLK} FSTYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'linux_raid_member$' &&\
! ${_LSBLK} TYPE "${dev}" 2>"${_NO_LOG}" | grep -q "raid.*$"; then ! ${_LSBLK} TYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'raid.*$'; then
${_LSBLK} NAME,SIZE -d "${dev}" ${_LSBLK} NAME,SIZE -d "${dev}"
fi fi
done done
@ -233,10 +221,10 @@ _activate_luks()
_LUKS_READY="" _LUKS_READY=""
if [[ -e /usr/bin/cryptsetup ]]; then if [[ -e /usr/bin/cryptsetup ]]; then
_dialog --no-mouse --infobox "Scanning for luks encrypted devices..." 0 0 _dialog --no-mouse --infobox "Scanning for luks encrypted devices..." 0 0
if ${_LSBLK} FSTYPE | grep -q "crypto_LUKS"; then if ${_LSBLK} FSTYPE | rg -q 'crypto_LUKS'; then
for part in $(${_LSBLK} NAME,FSTYPE | grep " crypto_LUKS$" | cut -d ' ' -f 1); do for part in $(${_LSBLK} NAME,FSTYPE | rg "(.*) crypto_LUKS$" -r '$1'); do
# skip already encrypted devices, device mapper! # skip already encrypted devices, device mapper!
if ! ${_LSBLK} TYPE "${part}" 2>"${_NO_LOG}" | grep -q "crypt$"; then if ! ${_LSBLK} TYPE "${part}" 2>"${_NO_LOG}" | rg -q 'crypt$'; then
_RUN_LUKS="" _RUN_LUKS=""
_dialog --yesno "Setup detected luks encrypted device, do you want to activate ${part} ?" 0 0 && _RUN_LUKS=1 _dialog --yesno "Setup detected luks encrypted device, do you want to activate ${part} ?" 0 0 && _RUN_LUKS=1
[[ -n "${_RUN_LUKS}" ]] && _enter_luks_name && _enter_luks_passphrase && _opening_luks [[ -n "${_RUN_LUKS}" ]] && _enter_luks_name && _enter_luks_passphrase && _opening_luks
@ -303,12 +291,12 @@ _umountall()
_stopmd() _stopmd()
{ {
_DISABLEMD="" _DISABLEMD=""
if grep -q ^md /proc/mdstat 2>"${_NO_LOG}"; then if rg -q ^md /proc/mdstat 2>"${_NO_LOG}"; then
_dialog --defaultno --yesno "Setup detected already running software raid device(s)...\n\nDo you want to delete ALL of them completely?\nWARNING: ALL DATA ON THEM WILL BE LOST!" 0 0 && _DISABLEMD=1 _dialog --defaultno --yesno "Setup detected already running software raid device(s)...\n\nDo you want to delete ALL of them completely?\nWARNING: ALL DATA ON THEM WILL BE LOST!" 0 0 && _DISABLEMD=1
if [[ -n "${_DISABLEMD}" ]]; then if [[ -n "${_DISABLEMD}" ]]; then
_umountall _umountall
# shellcheck disable=SC2013 # shellcheck disable=SC2013
for dev in $(grep ^md /proc/mdstat | sed -e 's# :.*##g'); do for dev in $(rg -o '(^md.*) ' -r '$1' /proc/mdstat); do
wipefs -a -f "/dev/${dev}" &>"${_NO_LOG}" wipefs -a -f "/dev/${dev}" &>"${_NO_LOG}"
mdadm --manage --stop "/dev/${dev}" &>"${_LOG}" mdadm --manage --stop "/dev/${dev}" &>"${_LOG}"
done done
@ -317,14 +305,14 @@ _stopmd()
fi fi
fi fi
_DISABLEMDSB="" _DISABLEMDSB=""
if ${_LSBLK} FSTYPE | grep -q "linux_raid_member"; then if ${_LSBLK} FSTYPE | rg -q 'linux_raid_member'; then
_dialog --defaultno --yesno "Setup detected superblock(s) of software raid devices...\n\nDo you want to delete the superblock on ALL of them?\nWARNING: ALL DATA ON THEM WILL BE LOST!" 0 0 && _DISABLEMDSB=1 _dialog --defaultno --yesno "Setup detected superblock(s) of software raid devices...\n\nDo you want to delete the superblock on ALL of them?\nWARNING: ALL DATA ON THEM WILL BE LOST!" 0 0 && _DISABLEMDSB=1
if [[ -n "${_DISABLEMDSB}" ]]; then if [[ -n "${_DISABLEMDSB}" ]]; then
_umountall _umountall
fi fi
fi fi
if [[ -n "${_DISABLEMD}" || -n "${_DISABLEMDSB}" ]]; then if [[ -n "${_DISABLEMD}" || -n "${_DISABLEMDSB}" ]]; then
for dev in $(${_LSBLK} NAME,FSTYPE | grep "linux_raid_member$" | cut -d ' ' -f 1); do for dev in $(${_LSBLK} NAME,FSTYPE | rg "(.*) linux_raid_member$" -r '$1'); do
_clean_disk "${dev}" _clean_disk "${dev}"
done done
_dialog --no-mouse --infobox "Removing superblock(s) on software raid devices done." 3 60 _dialog --no-mouse --infobox "Removing superblock(s) on software raid devices done." 3 60
@ -367,7 +355,7 @@ _stopluks()
_DETECTED_LUKS="" _DETECTED_LUKS=""
_LUKSDEV="" _LUKSDEV=""
# detect already running luks devices # detect already running luks devices
_LUKSDEV="$(${_LSBLK} NAME,TYPE | grep " crypt$" | cut -d ' ' -f1)" _LUKSDEV="$(${_LSBLK} NAME,TYPE | rg "(.*) crypt$" -r '$1')"
[[ -z "${_LUKSDEV}" ]] || _DETECTED_LUKS=1 [[ -z "${_LUKSDEV}" ]] || _DETECTED_LUKS=1
if [[ -n "${_DETECTED_LUKS}" ]]; then if [[ -n "${_DETECTED_LUKS}" ]]; then
_dialog --defaultno --yesno "Setup detected running luks encrypted device(s)...\n\nDo you want to delete ALL of them completely?\nWARNING: ALL DATA ON THEM WILL BE LOST!" 0 0 && _DISABLELUKS=1 _dialog --defaultno --yesno "Setup detected running luks encrypted device(s)...\n\nDo you want to delete ALL of them completely?\nWARNING: ALL DATA ON THEM WILL BE LOST!" 0 0 && _DISABLELUKS=1
@ -375,7 +363,7 @@ _stopluks()
if [[ -n "${_DISABLELUKS}" ]]; then if [[ -n "${_DISABLELUKS}" ]]; then
_umountall _umountall
for dev in ${_LUKSDEV}; do for dev in ${_LUKSDEV}; do
_LUKS_REAL_DEV="$(${_LSBLK} NAME,FSTYPE -s "${_LUKSDEV}" 2>"${_NO_LOG}" | grep " crypto_LUKS$" | cut -d ' ' -f1)" _LUKS_REAL_DEV="$(${_LSBLK} NAME,FSTYPE -s "${_LUKSDEV}" 2>"${_NO_LOG}" | rg "(.*) crypto_LUKS$" -r '$1')"
cryptsetup remove "${dev}" >"${_LOG}" cryptsetup remove "${dev}" >"${_LOG}"
# delete header from device # delete header from device
wipefs -a "${_LUKS_REAL_DEV}" &>"${_NO_LOG}" wipefs -a "${_LUKS_REAL_DEV}" &>"${_NO_LOG}"
@ -386,12 +374,12 @@ _stopluks()
_DISABLELUKS="" _DISABLELUKS=""
_DETECTED_LUKS="" _DETECTED_LUKS=""
# detect not running luks devices # detect not running luks devices
${_LSBLK} FSTYPE | grep -q "crypto_LUKS" && _DETECTED_LUKS=1 ${_LSBLK} FSTYPE | rg -q "crypto_LUKS" && _DETECTED_LUKS=1
if [[ -n "${_DETECTED_LUKS}" ]]; then if [[ -n "${_DETECTED_LUKS}" ]]; then
_dialog --defaultno --yesno "Setup detected not running luks encrypted device(s)...\n\nDo you want to delete ALL of them completely?\nWARNING: ALL DATA ON THEM WILL BE LOST!" 0 0 && _DISABLELUKS=1 _dialog --defaultno --yesno "Setup detected not running luks encrypted device(s)...\n\nDo you want to delete ALL of them completely?\nWARNING: ALL DATA ON THEM WILL BE LOST!" 0 0 && _DISABLELUKS=1
fi fi
if [[ -n "${_DISABLELUKS}" ]]; then if [[ -n "${_DISABLELUKS}" ]]; then
for dev in $(${_LSBLK} NAME,FSTYPE | grep "crypto_LUKS$" | cut -d ' ' -f1); do for dev in $(${_LSBLK} NAME,FSTYPE | rg "(.*) crypto_LUKS$" -r '$1'); do
# delete header from device # delete header from device
wipefs -a "${dev}" &>"${_NO_LOG}" wipefs -a "${dev}" &>"${_NO_LOG}"
done done
@ -433,7 +421,7 @@ _createmd()
while [[ -z "${_RAIDDEV}" ]]; do while [[ -z "${_RAIDDEV}" ]]; do
_dialog --inputbox "Enter the node name for the raiddevice:\n/dev/md[number]\n/dev/md0\n/dev/md1\n\n" 12 50 "/dev/md0" 2>"${_ANSWER}" || return 1 _dialog --inputbox "Enter the node name for the raiddevice:\n/dev/md[number]\n/dev/md0\n/dev/md1\n\n" 12 50 "/dev/md0" 2>"${_ANSWER}" || return 1
_RAIDDEV=$(cat "${_ANSWER}") _RAIDDEV=$(cat "${_ANSWER}")
if grep -q "^${_RAIDDEV//\/dev\//}" /proc/mdstat; then if rg -q "^${_RAIDDEV//\/dev\//}" /proc/mdstat; then
_dialog --msgbox "ERROR: You have defined 2 identical node names! Please enter another name." 8 65 _dialog --msgbox "ERROR: You have defined 2 identical node names! Please enter another name." 8 65
_RAIDDEV="" _RAIDDEV=""
fi fi
@ -543,7 +531,7 @@ _createpv()
: >/tmp/.pvs-create : >/tmp/.pvs-create
_dialog --no-mouse --infobox "Scanning blockdevices... This may need some time." 3 60 _dialog --no-mouse --infobox "Scanning blockdevices... This may need some time." 3 60
# Remove all lvm devices with children # Remove all lvm devices with children
_LVM_BLACKLIST="$(for dev in $(${_LSBLK} NAME,TYPE | grep " lvm$" | cut -d ' ' -f1 | sort -u); do _LVM_BLACKLIST="$(for dev in $(${_LSBLK} NAME,TYPE | rg "(.*) lvm$" -r '$1' | sort -u); do
echo "${dev}" echo "${dev}"
done)" done)"
#shellcheck disable=SC2119 #shellcheck disable=SC2119
@ -599,13 +587,13 @@ _createpv()
#find physical volumes that are not in use #find physical volumes that are not in use
_findpv() _findpv()
{ {
for dev in $(${_LSBLK} NAME,FSTYPE | grep " LVM2_member$" | cut -d ' ' -f1 | sort -u); do for dev in $(${_LSBLK} NAME,FSTYPE | rg '(.*) LVM2_member$' -r '$1' | sort -u); do
# exclude checks: # exclude checks:
#- not part of running lvm2 #- not part of running lvm2
# ! "$(${_LSBLK} TYPE ${dev} 2>"${_NO_LOG}" | grep "lvm")" # ! "$(${_LSBLK} TYPE ${dev} 2>"${_NO_LOG}" | rg -q 'lvm')"
#- not part of volume group #- not part of volume group
# $(pvs -o vg_name --noheading ${dev} | grep " $") # $(pvs -o vg_name --noheading ${dev} | rg " $")
if ! ${_LSBLK} TYPE "${dev}" 2>"${_NO_LOG}" | grep -q "lvm" && pvs -o vg_name --noheading "${dev}" | grep -q " $"; then if ! ${_LSBLK} TYPE "${dev}" 2>"${_NO_LOG}" | rg -q 'lvm' && pvs -o vg_name --noheading "${dev}" | rg -q ' $'; then
${_LSBLK} NAME,SIZE "${dev}" ${_LSBLK} NAME,SIZE "${dev}"
fi fi
done done
@ -615,7 +603,7 @@ _findpv()
_findvg() _findvg()
{ {
for dev in $(vgs -o vg_name --noheading); do for dev in $(vgs -o vg_name --noheading); do
if ! vgs -o vg_free --noheading --units m "${dev}" | grep -q " 0m$"; then if ! vgs -o vg_free --noheading --units m "${dev}" | rg -q ' 0m$'; then
#shellcheck disable=SC2028 #shellcheck disable=SC2028
echo "${dev} $(vgs -o vg_free --noheading --units m "${dev}")" echo "${dev} $(vgs -o vg_free --noheading --units m "${dev}")"
fi fi
@ -637,7 +625,7 @@ _createvg()
while [[ -z "${_VGDEV}" ]]; do while [[ -z "${_VGDEV}" ]]; do
_dialog --inputbox "Enter the Volume Group name:\nfoogroup\n<yourvolumegroupname>\n\n" 11 40 "foogroup" 2>"${_ANSWER}" || return 1 _dialog --inputbox "Enter the Volume Group name:\nfoogroup\n<yourvolumegroupname>\n\n" 11 40 "foogroup" 2>"${_ANSWER}" || return 1
_VGDEV=$(cat "${_ANSWER}") _VGDEV=$(cat "${_ANSWER}")
if vgs -o vg_name --noheading | grep -q "^ ${_VGDEV}"; then if vgs -o vg_name --noheading | rg -q "^ ${_VGDEV}"; then
_dialog --msgbox "ERROR: You have defined 2 identical Volume Group names! Please enter another name." 8 65 _dialog --msgbox "ERROR: You have defined 2 identical Volume Group names! Please enter another name." 8 65
_VGDEV="" _VGDEV=""
fi fi
@ -694,7 +682,7 @@ _createlv()
while [[ -z "${_LVDEV}" ]]; do while [[ -z "${_LVDEV}" ]]; do
_dialog --no-cancel --inputbox "Enter the Logical Volume name:\nfooname\n<yourvolumename>\n\n" 10 65 "fooname" 2>"${_ANSWER}" || return 1 _dialog --no-cancel --inputbox "Enter the Logical Volume name:\nfooname\n<yourvolumename>\n\n" 10 65 "fooname" 2>"${_ANSWER}" || return 1
_LVDEV=$(cat "${_ANSWER}") _LVDEV=$(cat "${_ANSWER}")
if lvs -o lv_name,vg_name --noheading | grep -q " ${_LVDEV} ${_LV}$"; then if lvs -o lv_name,vg_name --noheading | rg -q " ${_LVDEV} ${_LV}$"; then
_dialog --msgbox "ERROR: You have defined 2 identical Logical Volume names! Please enter another name." 8 65 _dialog --msgbox "ERROR: You have defined 2 identical Logical Volume names! Please enter another name." 8 65
_LVDEV="" _LVDEV=""
fi fi
@ -759,7 +747,7 @@ _enter_luks_name() {
while [[ -z "${_LUKSDEV}" ]]; do while [[ -z "${_LUKSDEV}" ]]; do
_dialog --no-cancel --inputbox "Enter the name for luks encrypted device ${_DEV}:\nfooname\n<yourname>\n\n" 10 65 "fooname" 2>"${_ANSWER}" || return 1 _dialog --no-cancel --inputbox "Enter the name for luks encrypted device ${_DEV}:\nfooname\n<yourname>\n\n" 10 65 "fooname" 2>"${_ANSWER}" || return 1
_LUKSDEV=$(cat "${_ANSWER}") _LUKSDEV=$(cat "${_ANSWER}")
if ! cryptsetup status "${_LUKSDEV}" | grep -q inactive; then if ! cryptsetup status "${_LUKSDEV}" | rg -q 'inactive'; then
_dialog --msgbox "ERROR: You have defined 2 identical luks encryption device names! Please enter another name." 8 65 _dialog --msgbox "ERROR: You have defined 2 identical luks encryption device names! Please enter another name." 8 65
_LUKSDEV="" _LUKSDEV=""
fi fi
@ -816,7 +804,7 @@ _createluks()
_activate_special_devices _activate_special_devices
_dialog --no-mouse --infobox "Scanning blockdevices... This may need some time." 3 60 _dialog --no-mouse --infobox "Scanning blockdevices... This may need some time." 3 60
# Remove all crypt devices with children # Remove all crypt devices with children
_LUKS_BLACKLIST="$(for dev in $(${_LSBLK} NAME,TYPE | grep " crypt$" | cut -d ' ' -f1 | sort -u); do _LUKS_BLACKLIST="$(for dev in $(${_LSBLK} NAME,TYPE | rg '(.*) crypt$' -r '$1' | sort -u); do
echo "${dev}" echo "${dev}"
done)" done)"
#shellcheck disable=SC2119 #shellcheck disable=SC2119