X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=fai%2Fconfig%2Fdistro-install-common%2Fdevbyid;h=733b8401e86dd092df93cc878e1f5fa78cb1cd3d;hb=HEAD;hp=056a83f356395e3af43e924374f29a32cc8af963;hpb=591c84435e22df12f2b5121c08578bff7c6bb047;p=automated-distro-installer diff --git a/fai/config/distro-install-common/devbyid b/fai/config/distro-install-common/devbyid index 056a83f..733b840 100755 --- a/fai/config/distro-install-common/devbyid +++ b/fai/config/distro-install-common/devbyid @@ -1,20 +1,40 @@ #!/bin/bash +# This file is part of Ian Kelling's automated-distro-installer +# Copyright (C) 2024 Ian Kelling + +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # input eg: /dev/sda1 or /dev/sda # output: /dev/disk/by-id/model+serial, or if no link exists, the same as input short_dev=$1 +if [[ ! -e $short_dev ]]; then + echo "devbyid: error: argument=$short_dev does not exist" + exit 1 +fi # devices are identified by model+serial num # and for ssd/hdd: wwn, and for nvme: eui. # model+serial gives me more info, so use that. shopt -s extglob for id in /dev/disk/by-id/!(nvme-eui*|wwn*); do - [[ -e $id ]] || break # if we matched nothing - if [[ $(readlink -f $id) == "$short_dev" ]]; then - printf '%s\n' "$id" - exit - fi + [[ -e $id ]] || break # if we matched nothing + if [[ $(readlink -f $id) == "$short_dev" ]]; then + printf '%s\n' "$id" + exit + fi done # a vm may not have a by-id link. printf '%s\n' "$short_dev"