varous minor updates
[automated-distro-installer] / wrt-setup-local
index f5dbe502f30dfe04adb58f0154aeedc082de872a..4cf186b44bf6c46047274096cde70e74c4ff42c1 100755 (executable)
 set -eE -o pipefail
 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
 
-
 pmirror() {
-    # background: upgrading all packages is not recommended because it
-    # doesn't go into the firmware. build new firmware if you want
-    # lots of upgrades. I think /tmp/opkg-lists is a pre openwrt 14 location.
-    f=(/tmp/opkg-lists/* /var/opkg-lists/*)
-    if ! (( $(date -r $f +%s) + 60*60*24 > $(date +%s) )); then
-        opkg update
-    fi
+  # background: upgrading all packages is not recommended because it
+  # doesn't go into the firmware. build new firmware if you want
+  # lots of upgrades. I think /tmp/opkg-lists is a pre openwrt 14 location.
+  f=(/var/opkg-lists/*)
+  if ! (( $(date -r $f +%s) + 60*60*24 > $(date +%s) )); then
+    opkg update
+  fi
 }
 
 pi() {
-    for x in "$@"; do
-        if [[ ! $(opkg list-installed "$x") ]]; then
-            pmirror
-            opkg install "$@"
-        fi
-    done
+  for x in "$@"; do
+    if [[ ! $(opkg list-installed "$x") ]]; then
+      pmirror
+      opkg install "$@"
+    fi
+  done
 }
 
 v() {
-    printf "+ %s\n" "$*"
-    "$@"
+  printf "+ %s\n" "$*"
+  "$@"
 }
 
 ### network config
 ###
-l=10.0.0
-lan=10.0.0.0
+ssid=cmc2
+lan=10.1.0.0
 mask=255.255.0.0
+l=${lan%.0}
+
+passwd -l root ||: #already locked fails
 
 cat >/usr/bin/arch-pxe-mount <<'EOFOUTER'
 #!/bin/bash
@@ -75,9 +77,6 @@ v pi kmod-usb-storage block-mount kmod-fs-ext4 nfs-kernel-server \
 
 
 
-sed -ri "s/option[[:space:]]+encryption[[:space:]].*/option encryption psk2/;s/option[[:space:]]+key.*/option key pictionary49/" /etc/config/wireless
-sed -i '/^[[:space:]]*option disabled/d' /etc/config/wireless
-v wifi
 
 
 v /etc/init.d/fstab enable ||:
@@ -153,6 +152,32 @@ v /etc/init.d/nfsd enable
 # fi
 
 
+wireless_restart=true
+key=pictionary49
+for x in 0 1; do
+  if [[ $(uci get wireless.default_radio$x.ssid) != $ssid ]]; then
+    uci set wireless.default_radio$x.ssid=$ssid
+    wireless_restart=true
+  fi
+  if [[ $(uci get wireless.default_radio$x.key) != $key ]]; then
+    uci set wireless.default_radio$x.key=$key
+    wireless_restart=true
+  fi
+  if [[ $(uci get wireless.default_radio$x.encryption) != $key ]]; then
+    uci set wireless.default_radio$x.encryption=$key
+    wireless_restart=true
+  fi
+  if [[ $(uci get wireless.default_radio$x.disabled 2>/dev/null) ]]; then
+    uci delete wireless.default_radio$x.disabled
+    wireless_restart=true
+  fi
+done
+
+if $wireless_restart; then
+  uci commit wireless
+  v wifi
+fi
+
 
 ########## openvpn exampl
 ########## missing firewall settings for routing lan
@@ -177,6 +202,7 @@ v /etc/init.d/nfsd enable
 # EOF
 
 
+
 v cedit /etc/config/network <<EOF || v /etc/init.d/network reload
 config 'route' 'transmission'
         option 'interface' 'lan'
@@ -294,27 +320,27 @@ EOF
 
 # avoid using the dns servers that my isp tells me about.
 if [[ $(uci get dhcp.@dnsmasq[0].resolvfile 2>/dev/null) ]]; then
-    # default is '/tmp/resolv.conf.auto', we switch to the dnsmasq default of
-    # /etc/resolv.conf. not sure why I did this.
-    v uci delete dhcp.@dnsmasq[0].resolvfile
-    uci commit dhcp
-    dnsmasq_restart=true
+  # default is '/tmp/resolv.conf.auto', we switch to the dnsmasq default of
+  # /etc/resolv.conf. not sure why I did this.
+  v uci delete dhcp.@dnsmasq[0].resolvfile
+  uci commit dhcp
+  dnsmasq_restart=true
 fi
 
 if [[ $(uci get dhcp.@dnsmasq[0].domain) != b8.nz ]]; then
-    v uci set dhcp.@dnsmasq[0].domain=b8.nz
-    uci commit dhcp
-    dnsmasq_restart=true
+  v uci set dhcp.@dnsmasq[0].domain=b8.nz
+  uci commit dhcp
+  dnsmasq_restart=true
 fi
 if [[ $(uci get dhcp.@dnsmasq[0].local) != b8.nz ]]; then
-    v uci set dhcp.@dnsmasq[0].local=/b8.nz/
-    uci commit dhcp
-    dnsmasq_restart=true
+  v uci set dhcp.@dnsmasq[0].local=/b8.nz/
+  uci commit dhcp
+  dnsmasq_restart=true
 fi
 
 if [[ $(uci get system.@system[0].hostname) != wrt ]]; then
-    v uci set system.@system[0].hostname=wrt
-    uci commit system
+  v uci set system.@system[0].hostname=wrt
+  uci commit system
 fi
 
 
@@ -405,9 +431,27 @@ tftp-root=/mnt/usb/tftpboot
 EOF
 
 if $dnsmasq_restart; then
-    v /etc/init.d/dnsmasq restart
+  v /etc/init.d/dnsmasq restart
 fi
 
 if $firewall_restart; then
-    v /etc/init.d/firewall restart
+  v /etc/init.d/firewall restart
+fi
+
+
+reboot=false
+if [[ $(uci get network.lan.ipaddr) != $l.1 ]]; then
+  v uci set network.lan.ipaddr=$l.1
+  uci commit network
+  reboot=true
+fi
+if [[ $(uci get network.lan.netmask) != $mask ]]; then
+  v uci set network.lan.netmask=$mask
+  uci commit network
+  reboot=true
+fi
+
+if $reboot; then
+  reboot
 fi
+exit 0