35 lines
838 B
Fish
35 lines
838 B
Fish
#!/bin/env fish
|
|
function chooseDisk -a outFile message selectScript
|
|
if [ -z "$selectScript" ]
|
|
set selectScript "$(status dirname)/select.fish"
|
|
end
|
|
|
|
source "$selectScript"
|
|
|
|
while true
|
|
set -l header
|
|
set -l disks
|
|
|
|
lsblk -do NAME,SIZE,TYPE | begin
|
|
read header
|
|
|
|
cat | while read disk
|
|
set -l diskInfo (string split -n " " $disk)
|
|
|
|
if contains "$diskInfo[3]" disk
|
|
set -a disks "$disk"
|
|
end
|
|
end
|
|
end
|
|
|
|
select "$header" "$outFile" "$message" "No valid disk found!" "$(string collect $disks)" false
|
|
and begin
|
|
set -l disk (string split -n " " (cat "$outFile"))
|
|
echo "/dev/$disk[1]" >$outFile
|
|
return
|
|
end
|
|
end
|
|
end
|
|
|
|
chooseDisk $argv
|