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
-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 ||:
# 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
# EOF
+
v cedit /etc/config/network <<EOF || v /etc/init.d/network reload
config 'route' 'transmission'
option 'interface' 'lan'
# 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
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