minor fixes
[automated-distro-installer] / wrt-setup
index c86a0d5e1b8d4da92af5b783f17e6602378ef109..55de7695298620884466057fd067ee7bfe0d7a1a 100755 (executable)
--- a/wrt-setup
+++ b/wrt-setup
 set -eE -o pipefail
 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
 
 set -eE -o pipefail
 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
 
-x="$(readlink -f "$BASH_SOURCE")"; cd ${x%/*}
+[[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@"
+
+this_file="$(readlink -f -- "${BASH_SOURCE[0]}")"
+readonly this_file this_dir="${this_file%/*}"
+cd "$this_dir"
 
 usage() {
 
 usage() {
-  cat <<EOF
-usage: ${0##*/} [-h|--help] [HOST/IP] [wrt-setup-local_ARGS]
+  cat <<'EOF'
+usage: wrt-setup [-h|--help] [HOST/IP] [wrt-setup-local_ARGS]
 setup my router in general: dhcp, dns, etc.
 
 Default HOST is 10.0.0.1 or 10.2.0.1 if they are the gateway, otherwise
 setup my router in general: dhcp, dns, etc.
 
 Default HOST is 10.0.0.1 or 10.2.0.1 if they are the gateway, otherwise
@@ -34,16 +38,16 @@ bash, we can use ${@@Q} to properly pass an empty var.
 
 
 Note, if we dont have internet yet, then just download the bash package,
 
 
 Note, if we dont have internet yet, then just download the bash package,
-scp it over manually and install it, eg:
+rsync 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
 
 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:
+rsync 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
 ssh wrt
 opkg install /root/bash_5.0-3_mips_24kc.ipk
 EOF
   wrt-setup-local -h
-  exit $1
+  exit 0
 }
 
 
 }
 
 
@@ -66,30 +70,16 @@ if [[ ! $h ]]; then
   esac
 fi
 
   esac
 fi
 
-echo "$0: host=$h"
-
-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
+rsync /a/work/libremanage/libremanage /a/bin/fai/wrt-init /a/bin/fai/wrt-setup-local /a/bin/fai/dnsmasq-end-lease /a/bin/cedit/cedit $h:/usr/bin
 # relay is built for openwrt 18.06.2, r7676-cddd7b4c77
 # 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 \
-     /p/router-secrets /p/c/machine_specific/wrt/etc/wg.{key,psk} $h:
-scp ../openwrtkeyring/usign/* $h:/etc/opkg/keys
-
-ssh $h <<EOFOUTER
-set -x
-# librecmc 1.5.1 is missing nfs-kernel-server and screen
-source /etc/os-release
-if [[ $ID == librecmc && $VERSION == v1.5.1-core]]; then
- cat >/etc/opkg/customfeeds.conf <<'EOF'
-src/gz openwrt_packages http://downloads.openwrt.org/releases/19.07.3/packages/mips_24kc/packages
-fi
-EOF
 
 
-if ! opkg list-installed|grep bash; then
-    opkg update
-    opkg install bash
-fi
-export HOME_DOMAIN=$HOME_DOMAIN
-wrt-setup-local $@
-EOFOUTER
+#/a/opt/openwrt/source/bin/packages/mips_24kc/mypackages/relay_1.0-1_mips_24kc.ipk \
+
+rsync /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}  /p/c/{ptr,dnsmasq,cmc-firewall}-data /b/bash-bear-trap/bash-bear $h:
+rsync ../openwrtkeyring/usign/* $h:/etc/opkg/keys
+
+ssh $h wrt-init ${HOME_DOMAIN:-b8.nz} "$@"