X-Git-Url: https://iankelling.org/git/?p=automated-distro-installer;a=blobdiff_plain;f=wrt-setup-local;h=4cf186b44bf6c46047274096cde70e74c4ff42c1;hp=f5dbe502f30dfe04adb58f0154aeedc082de872a;hb=c47175685b348735b3440e16851dde2cc39b6f3f;hpb=ac4e0089e245c96a388b8fcdd92fc05da3399694 diff --git a/wrt-setup-local b/wrt-setup-local index f5dbe50..4cf186b 100755 --- a/wrt-setup-local +++ b/wrt-setup-local @@ -18,36 +18,38 @@ 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 </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