X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=myfai-chboot-local;h=4cef9a59638e22c06d718acd9dbf39fb4d39c68f;hb=8bb06901ce000f76dafc73288e1fe47c3032e4af;hp=cef41c4347ea32939de34d1146808860417876be;hpb=1e6019a5846160b3f62fc94357e16944b5b3527b;p=automated-distro-installer diff --git a/myfai-chboot-local b/myfai-chboot-local index cef41c4..4cef9a5 100755 --- a/myfai-chboot-local +++ b/myfai-chboot-local @@ -1,4 +1,21 @@ #!/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. + # note, this script gets piped to bash, so cant cd to current dir [[ $EUID == 0 ]] || exec sudo "${BASH_SOURCE}" "$@" @@ -56,22 +73,27 @@ if [[ ! $1 ]]; then fi # somewhat duplicated in brc hostip() - case $host in - [0-9:]) - hostip=$host - ;; - *) - hostip=$(getent ahostsv4 "$host" | awk '{ print $1 }' | head -n1) - ;; - esac - - -# assuming ipv4, or else we might need to deal with multiple addresses -# in an ipv4 + ipv6 network. -my_ip=$(ip -4 route get $hostip | sed -nr 's,^.*src\s+(\S+).*,\1,p') -if [[ ! $my_ip || $my_ip =~ [[:space:]] ]]; then - echo "$0: error: failed to get \$my_ip, got: $my_ip" - exit 1 +case $host in + default) : ;; + [0-9:]) + hostip=$host + ;; + *) + hostip=$(getent ahostsv4 "$host" | awk '{ print $1 }' | head -n1) + ;; +esac + +if [[ $hostip ]]; then + + # assuming ipv4, or else we might need to deal with multiple addresses + # in an ipv4 + ipv6 network. + my_ip=$(ip -4 route get $hostip | sed -nr 's,^.*src\s+(\S+).*,\1,p') + if [[ ! $my_ip || $my_ip =~ [[:space:]] ]]; then + echo "$0: error: failed to get \$my_ip, got: $my_ip" + exit 1 + fi +else + my_ip=$(ip r show default | sed -r 's/.*via ([^ ]*).*/\1/' | head -n1) fi if [[ $host == default ]]; then