X-Git-Url: https://iankelling.org/git/?p=automated-distro-installer;a=blobdiff_plain;f=wrt-setup;h=1e0d6362befbc4d56a9d1352cbf901f632cb0538;hp=9ac518afca061bf9f20a3928eb4c557f26f2e25e;hb=1b08e82a978c8db76e1ebc67f3b4ae875ba27537;hpb=ed3681256885d295f39d5df60784d3281a2f8719 diff --git a/wrt-setup b/wrt-setup index 9ac518a..1e0d636 100755 --- a/wrt-setup +++ b/wrt-setup @@ -19,6 +19,8 @@ set -eE -o pipefail trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR +[[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@" + x="$(readlink -f "$BASH_SOURCE")"; cd ${x%/*} usage() { @@ -26,17 +28,26 @@ usage() { usage: ${0##*/} [-h|--help] [HOST/IP] [wrt-setup-local_ARGS] setup my router in general: dhcp, dns, etc. -Default HOST is root@10.0.0.1 +Default HOST is 10.0.0.1 or 10.2.0.1 if they are the gateway, otherwise +it must be specified. Note, use -m "''" to send an empty mac arg. When we get a new enough bash, we can use ${@@Q} to properly pass an empty var. + +Note, if we dont have internet yet, then just download the bash package, +scp it over manually and install it, eg: + +cat /etc/opkg/distfeeds.conf +wget https://librecmc.org/librecmc/downloads/snapshots/v1.5.1-core/packages/mips_24kc/packages/bash_5.0-3_mips_24kc.ipk +scp bash_5.0-3_mips_24kc.ipk wrt: +ssh wrt +opkg install /root/bash_5.0-3_mips_24kc.ipk EOF wrt-setup-local -h exit $1 } -h=root@10.0.0.1 case $1 in -h|--help) usage ;; @@ -44,20 +55,29 @@ case $1 in ?*) h="$1"; shift ;; esac -echo "$0: host=$h" +if [[ ! $h ]]; then + read -r _ _ gateway _ < <(ip -4 route get 8.8.8.8) + case $gateway in + 10.0.0.1|10.2.0.1) + h=root@$gateway + ;; + *) + echo "$0: error: gateway = $gateway and no HOST/IP specified" + exit 1 + ;; + esac +fi -cat ~/.ssh/home.pub | ssh $h dd of=/etc/dropbear/authorized_keys 2>/dev/null -scp /a/work/libremanage/libremanage /a/bin/fai/wrt-setup-local /a/bin/cedit/cedit $h:/usr/bin +echo "$0: h=$h" +# todo: ecdsa key not working with dropbear +cat ~/.ssh/{h,hrsa,home}.pub | ssh $h dd of=/etc/dropbear/authorized_keys 2>/dev/null +scp /a/work/libremanage/libremanage /a/bin/fai/wrt-init /a/bin/fai/wrt-setup-local /a/bin/cedit/cedit $h:/usr/bin # relay is built for openwrt 18.06.2, r7676-cddd7b4c77 -sudo scp /q/root/shadow/router /p/c/machine_specific/wrt/etc/dropbear/dropbear_rsa_host_key \ - /a/opt/openwrt/source/bin/packages/mips_24kc/mypackages/relay_1.0-1_mips_24kc.ipk $h: -ssh $h <