improvements
[automated-distro-installer] / wrt-setup
index c86a0d5e1b8d4da92af5b783f17e6602378ef109..8f94f715c406d73f0b20f14461a217cc36048d87 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,17 @@ 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 /p/c/cmc-firewall-data-http /b/bash-bear-trap/bash-bear $h:
+rsync ../openwrtkeyring/usign/* $h:/etc/opkg/keys
+
+ssh $h wrt-init ${HOME_DOMAIN:-b8.nz} "$@"