misc new stuff
[automated-distro-installer] / wrt-setup
index 3e71ef5099816bcdc45dd6b76785008ce0ea5819..1e0d6362befbc4d56a9d1352cbf901f632cb0538 100755 (executable)
--- a/wrt-setup
+++ b/wrt-setup
 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() {
   cat <<EOF
-usage: ${0##*/} [-h|--help] [-d|--dev2] [HOST/IP]
+usage: ${0##*/} [-h|--help] [HOST/IP] [wrt-setup-local_ARGS]
 setup my router in general: dhcp, dns, etc.
 
-dev2 is for setting up a second device for testing etc.
+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
 
-temp=$(getopt -l help,dev2 h2 "$@") || usage 1
-eval set -- "$temp"
-while true; do
-  case $1 in
-    -2|--dev2) local_arg=-2; shift ;;
-    -h|--help) usage ;;
-    --) shift; break ;;
-    *) echo "$0: Internal error! unexpected args: $*" ; exit 1 ;;
-  esac
-done
+case $1 in
+  -h|--help) usage ;;
+  -*) : ;;
+  ?*) h="$1"; shift ;;
+esac
 
-if (( $# > 1 )); then
-  usage 1
+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
 
-if [[ $# == 1 ]]; then
-  read h <<<"$@"
-fi
+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
 
-cat ~/.ssh/home.pub | ssh $h dd of=/etc/dropbear/authorized_keys 2>/dev/null
-scp /a/bin/fai/wrt-setup-local /a/bin/cedit/cedit $h:/usr/bin
-# build for openwrt 18.06.2, r7676-cddd7b4c77
-scp /a/opt/openwrt/source/bin/packages/mips_24kc/mypackages/relay_1.0-1_mips_24kc.ipk $h:
-ssh $h <<EOF
-if ! opkg list-installed|grep bash; then
-    opkg update
-    opkg install bash
-fi
-export HOME_DOMAIN=$HOME_DOMAIN
-wrt-setup-local $local_arg
-EOF
+#/a/opt/openwrt/source/bin/packages/mips_24kc/mypackages/relay_1.0-1_mips_24kc.ipk \
+
+scp /q/root/shadow/router /p/c/machine_specific/wrt/etc/dropbear/dropbear_rsa_host_key \
+     /p/router-secrets /p/c/machine_specific/wrt/etc/wg.{key,psk} $h:
+scp ../openwrtkeyring/usign/* $h:/etc/opkg/keys
+
+ssh $h wrt-init ${HOME_DOMAIN:-b8.nz} "$@"