add more stack traces, other minor changes
authorIan Kelling <iank@fsf.org>
Sat, 9 Sep 2017 03:03:42 +0000 (20:03 -0700)
committerIan Kelling <iank@fsf.org>
Sat, 9 Sep 2017 03:03:50 +0000 (20:03 -0700)
14 files changed:
arch-init
bash-trace [new file with mode: 0644]
debian-pxe-preseed
dsfull
fai-revm
fai/config/files/boot/chboot/DEFAULT
faiserver-revm
faiserver-setup
fresize
install-chboot
myfai-chboot-local
pxe-server
wrt-disabled-firewall-rules
wrt-setup

index a2517eeb5fb421a0911fce26afe8329198d55638..2f14ad60bc1485a6f325f722bab9c59863e1fe09 100755 (executable)
--- a/arch-init
+++ b/arch-init
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-set -eE -o pipefail
-trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
-
-x="$(readlink -f "$BASH_SOURCE")"; cd ${x%/*}
+x="$(readlink -f "$BASH_SOURCE")"; source "${x%/*}/bash-trace"
+cd ${x%/*}
 
 export HOSTNAME="$1"
 mirror=$2
diff --git a/bash-trace b/bash-trace
new file mode 100644 (file)
index 0000000..61f8ae5
--- /dev/null
@@ -0,0 +1,48 @@
+# meant to be sourced. copy/pasted from https://iankelling.org/git/?p=errhandle;a=summary
+
+bash-trace() {
+    local -i argc_index=0 arg frame i start=${1:-1} max_indent=8 indent
+    local source
+    local extdebug=false
+    if [[ $(shopt -p extdebug) == *-s* ]]; then
+        extdebug=true
+    fi
+
+    for ((frame=0; frame < ${#FUNCNAME[@]}-1; frame++)); do
+        argc=${BASH_ARGC[frame]}
+        argc_index+=$argc
+        ((frame < start)) && continue
+        if (( ${#BASH_SOURCE[@]} > 1 )); then
+            source="${BASH_SOURCE[frame+1]}:${BASH_LINENO[frame]}:"
+        fi
+        indent=$((frame-start+1))
+        indent=$((indent < max_indent ? indent : max_indent))
+        printf "%${indent}s↳%sin \`%s" '' "$source" "${FUNCNAME[frame]}"
+        if $extdebug; then
+            for ((i=argc_index-1; i >= argc_index-argc; i--)); do
+                printf " %s" "${BASH_ARGV[i]}"
+            done
+        fi
+        echo \'
+    done
+}
+
+
+errcatch() {
+    set -E; shopt -s extdebug
+    _err-trap() {
+        err=$?
+        exec >&2
+        set +x
+        echo "${BASH_SOURCE[1]}:${BASH_LINENO[0]}:in \`$BASH_COMMAND' returned $err"
+        bash-trace 2
+        set -e
+        "${_errcatch_cleanup[@]}"
+        echo "$0: exiting with code $err"
+        exit $err
+    }
+    trap _err-trap ERR
+    set -o pipefail
+}
+
+errcatch
index c2a2087cc683c4d441c48230199840a97593d2f1..31a038a052a59a969f84e9deda6a406b3f0037a2 100755 (executable)
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 
-cleanup() { :; }
-set -eE -o pipefail
-trap 'cleanup; echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
-
+x="$(readlink -f "$BASH_SOURCE")"; source "${x%/*}/bash-trace"
 
 [[ $EUID == 0 ]] || exec sudo "$BASH_SOURCE" "$@"
 
@@ -30,6 +27,7 @@ e() { echo "$*"; "$@"; }
 mount_dir=$(mktemp -d)
 
 cleanup() { cd; umount -f $mount_dir; }
+_errcatch_cleanup=cleanup
 e mount -o users wrt:/mnt/usb $mount_dir
 
 
diff --git a/dsfull b/dsfull
index 417635014c3d8413649d7c03bb9c2ac9b92e7163..29946f39804b3cfccbc7378fba17656167d207a0 100755 (executable)
--- a/dsfull
+++ b/dsfull
@@ -13,9 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-set -eE -o pipefail
-cleanup() { :; }
-trap 'cleanup; echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
+x="$(readlink -f "$BASH_SOURCE")"; source "${x%/*}/bash-trace"
 
 reboot=true
 if [[ $1 == -r ]]; then
@@ -73,7 +71,7 @@ if $kexec; then
     e myfai-chboot $host
     e fai-kexec $host ||:
 else
-    cleanup() { pxe-server; }
+    cleanup() { pxe-server; }; _errcatch_cleanup=cleanup
     e pxe-server $host fai
 
     if $reboot; then
@@ -82,7 +80,7 @@ else
     fi
 
     e pxe-server -a
-    cleanup() { :; }
+    unset _errcatch_cleanup
 fi
 
 error=true
index 4009ede6e37a081ab7da6d631dd25c69da5534e1..3b057957ea9ae71a7465f6addc60f881ea8c4920 100755 (executable)
--- a/fai-revm
+++ b/fai-revm
 
 
 
-cleanup() { :; }
-set -eE -o pipefail
-trap 'cleanup; echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
-script_dir=$(dirname $(readlink -f "$BASH_SOURCE"))
+x="$(readlink -f "$BASH_SOURCE")"; source "${x%/*}/bash-trace"
+
+script_dir="$(readlink -f "$BASH_SOURCE")"
 
 e() { echo "$*"; "$@"; }
 
@@ -82,6 +81,8 @@ cleanup() {
     ./pxe-server
     ./faiserver-disable
 }
+_errcatch_cleanup=cleanup
+
 if is_arch_revm; then
     ./pxe-server demohost arch
     sleep 2
@@ -133,7 +134,7 @@ sleep 30
 while ! timeout -s 9 10 ssh -oBatchMode=yes root@$name /bin/true; do
     e sleep 5
 done
-cleanup() { :; }
+unset _errcatch_cleanup
 e pxe-server
 if is_arch_revm; then
     ./arch-init-remote $name
index a7b450a4793a357955082e73ec459c4b3fc083c9..8a093d9e32287de91e36266bd87bcb65fae7fc3f 100755 (executable)
@@ -16,8 +16,7 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 
-set -eE -o pipefail
-trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
+x="$(readlink -f "$BASH_SOURCE")"; source "${x%/*}/bash-trace"
 
 [[ $EUID == 0 ]] || exec sudo "$BASH_SOURCE" "$@"
 
index 6d598a6f3f084b1771e3f6fb3fa7ffa1cb7d9882..65a23d62c6c000d87a738e6edbc1c76db1601fa1 100755 (executable)
@@ -2,10 +2,10 @@
 set -x
 
 set -eE -o pipefail
-cleanup() { :; }
-trap 'cleanup; echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
+cleanup() { :; }; _errcatch_cleanup=cleanup
 
-x="$(readlink -f "$BASH_SOURCE")"; cd ${x%/*}
+x="$(readlink -f "$BASH_SOURCE")"; source "${x%/*}/bash-trace"
+cd ${x%/*}
 
 usage() {
     cat <<EOF
index f60ec4791a5c58d0fda16878136cfc8db7e8ac1b..69e783b54d542a89fc67ea95a3abdc9ece5e9217 100755 (executable)
@@ -15,8 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-set -eE -o pipefail
-trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
+x="$(readlink -f "$BASH_SOURCE")"; source "${x%/*}/bash-trace"
 
 [[ $EUID == 0 ]] || exec sudo "${BASH_SOURCE}" "$@"
 
diff --git a/fresize b/fresize
index 450982310ffa4061582879f09e8b6de955f071c2..4f2ef49854b087f53d1ae0d961747cc2f752df6a 100755 (executable)
--- a/fresize
+++ b/fresize
@@ -1,53 +1,9 @@
 #!/bin/bash
 
-shopt -s extdebug
-bash-trace() {
-    # shows function args when: shopt -s extdebug
-    local -i argc_index=0 arg frame i start=${1:-1} max_indent=8 indent
-    local source
-    local extdebug=false
-    if [[ $(shopt -p extdebug) == *-s* ]]; then
-        extdebug=true
-    fi
-
-    for ((frame=0; frame < ${#FUNCNAME[@]}-1; frame++)); do
-        argc=${BASH_ARGC[frame]}
-        argc_index+=$argc
-        ((frame < start)) && continue
-        if (( ${#BASH_SOURCE[@]} > 1 )); then
-            source="${BASH_SOURCE[frame+1]}:${BASH_LINENO[frame]}:"
-        fi
-        indent=$((frame-start+1))
-        indent=$((indent < max_indent ? indent : max_indent))
-        printf "%${indent}s↳%sin \`%s" '' "$source" "${FUNCNAME[frame]}"
-        if $extdebug; then
-            for ((i=argc_index-1; i >= argc_index-argc; i--)); do
-                printf " %s" "${BASH_ARGV[i]}"
-            done
-        fi
-        echo \'
-    done
-}
-
-
-errcatch() {
-    set -E; shopt -s extdebug
-    _err-trap() {
-        err=$?
-        exec >&2
-        echo "${BASH_SOURCE[1]}:${BASH_LINENO[0]}:in \`$BASH_COMMAND' returned $err"
-        bash-trace 2
-        echo "$0: exiting with code $err"
-        exit $err
-    }
-    trap _err-trap ERR
-    set -o pipefail
-}
-
-errcatch
-
 [[ $EUID == 0 ]] || exec sudo "$BASH_SOURCE" "$@"
 
+x="$(readlink -f "$BASH_SOURCE")"; source "${x%/*}/bash-trace"
+
 usage() {
     cat <<EOF
 Usage: ${0##*/} [OPTIONS] +/-SIZE[g] swap|boot
index 69f46dfb99848bbbdd6641a98ae15108d0df165a..098b23220cb6355a4065b180c0f480badab0e733 100755 (executable)
 
 [[ $EUID == 0 ]] || exec sudo -E "$BASH_SOURCE" "$@"
 
-set -eE -o pipefail
-trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
-
-
-x=$(readlink -f "$BASH_SOURCE"); cd ${x%/*}
+x="$(readlink -f "$BASH_SOURCE")"; source "${x%/*}/bash-trace"
+cd ${x%/*}
 
 usage() {
     cat <<EOF
index f21a837dc5308790c45b263c3e69aaa3dd37006c..c990fdf39456b179549bab45ebe0d8e28f1f31f3 100755 (executable)
@@ -1,7 +1,6 @@
 #!/bin/bash
 
-set -eE -o pipefail
-trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
+x="$(readlink -f "$BASH_SOURCE")"; source "${x%/*}/bash-trace"
 
 fai_action_arg=I
 fai_reboot_arg=,reboot
index ec4606012a9703d1f70e2088f051057cbd2e1c44..8b3399ea806f6147cb6608bfdcb5fd8305bf6c0d 100755 (executable)
@@ -22,8 +22,8 @@
 # default distro is the base debian/fedora type. others are fai & arch.
 # for no pxe server, use a no-op like : or true.
 
-set -eE -o pipefail
-trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
+
+x="$(readlink -f "$BASH_SOURCE")"; source "${x%/*}/bash-trace"
 
 
 usage() {
index c126d432d33d1a441a4df69de52abf5ef4557ff5..3d1e9025ff8e7bfbf8f59b1938cc1f8fd9cc8024 100644 (file)
@@ -1,8 +1,7 @@
 firewall rules, temporarily disabled until I get them working
 
 
-#### begin port forwarding rules ####
-      # each port forward needs corresponding forward in the vpn server
+# each port forward needs corresponding forward in the vpn server
 
 
 #http/https
@@ -59,6 +58,88 @@ config rule
 
 
 
+#### begin rules for nfs ####
+# https://serverfault.com/questions/377170/which-ports-do-i-need-to-open-in-the-firewall-to-use-nfs
+# https://wiki.debian.org/SecuringNFS
+# I had no /etc/default/quota, or any process named quota anything,
+# so, assumed that was unneeded. seems to work.
+config redirect
+    option src              wan
+    option src_dport        111
+    option dest_ip          192.168.1.2
+    option dest             lan
+config rule
+    option src              wan
+    option target           ACCEPT
+    option dest_port        111
+config redirect
+    option src              wan
+    option src_dport        2049
+    option dest_ip          192.168.1.2
+    option dest             lan
+config rule
+    option src              wan
+    option target           ACCEPT
+    option dest_port        2049
+config redirect
+    option src              wan
+    option src_dport        32764
+    option dest_ip          192.168.1.2
+    option dest             lan
+config rule
+    option src              wan
+    option target           ACCEPT
+    option dest_port        32764
+config redirect
+    option src              wan
+    option src_dport        32765
+    option dest_ip          192.168.1.2
+    option dest             lan
+config rule
+    option src              wan
+    option target           ACCEPT
+    option dest_port        32765
+config redirect
+    option src              wan
+    option src_dport        32766
+    option dest_ip          192.168.1.2
+    option dest             lan
+config rule
+    option src              wan
+    option target           ACCEPT
+    option dest_port        32766
+config redirect
+    option src              wan
+    option src_dport        32767
+    option dest_ip          192.168.1.2
+    option dest             lan
+config rule
+    option src              wan
+    option target           ACCEPT
+    option dest_port        32767
+config redirect
+    option src              wan
+    option src_dport        32768
+    option dest_ip          192.168.1.2
+    option dest             lan
+config rule
+    option src              wan
+    option target           ACCEPT
+    option dest_port        32768
+#### end rules for nfs ####
+
+
+config redirect
+    option name mariadb
+    option src              wan
+    option src_dport        3306
+    option dest             lan
+    option dest_ip          192.168.1.2
+    option proto            tcp
+config rule
+    option src              wan
+    option target           ACCEPT
+    option dest_port        3306
+    option proto            tcp
 
 
-#### end port forwarding rules ####
index 6fe2168f23e6ea69b38d8bc98b41752b37c97c15..d721f6ad36aa3d976e75add20920bb55f4953ec9 100755 (executable)
--- a/wrt-setup
+++ b/wrt-setup
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-set -eE -o pipefail
-trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
-
-# ssh
+x="$(readlink -f "$BASH_SOURCE")"; source "${x%/*}/bash-trace"
 
 pmirror() {
     # background: upgrading all packages is not recommended because it
@@ -217,110 +214,40 @@ config rule
 
 config redirect
     option src              wan
-    option src_dport        80
+    option src_dport        1194
     option dest             lan
     option dest_ip          192.168.1.2
-    option proto            tcp
+    option proto            udp
 config rule
     option src              wan
     option target           ACCEPT
-    option dest_port        80
-    option proto            tcp
+    option dest_port        1194
+    option proto            udp
 
-config redirect
-    option name syncthing
-    option src              wan
-    option src_dport        22001
-    option dest_ip          192.168.1.2
-    option dest             lan
-config rule
-    option src              wan
-    option target           ACCEPT
-    option dest_port        22001
 
-#### begin rules for nfs ####
-# https://serverfault.com/questions/377170/which-ports-do-i-need-to-open-in-the-firewall-to-use-nfs
-# https://wiki.debian.org/SecuringNFS
-# I had no /etc/default/quota, or any process named quota anything,
-# so, assumed that was unneeded. seems to work.
 config redirect
     option src              wan
-    option src_dport        111
-    option dest_ip          192.168.1.2
-    option dest             lan
-config rule
-    option src              wan
-    option target           ACCEPT
-    option dest_port        111
-config redirect
-    option src              wan
-    option src_dport        2049
-    option dest_ip          192.168.1.2
-    option dest             lan
-config rule
-    option src              wan
-    option target           ACCEPT
-    option dest_port        2049
-config redirect
-    option src              wan
-    option src_dport        32764
-    option dest_ip          192.168.1.2
-    option dest             lan
-config rule
-    option src              wan
-    option target           ACCEPT
-    option dest_port        32764
-config redirect
-    option src              wan
-    option src_dport        32765
-    option dest_ip          192.168.1.2
-    option dest             lan
-config rule
-    option src              wan
-    option target           ACCEPT
-    option dest_port        32765
-config redirect
-    option src              wan
-    option src_dport        32766
-    option dest_ip          192.168.1.2
+    option src_dport        80
     option dest             lan
-config rule
-    option src              wan
-    option target           ACCEPT
-    option dest_port        32766
-config redirect
-    option src              wan
-    option src_dport        32767
     option dest_ip          192.168.1.2
-    option dest             lan
+    option proto            tcp
 config rule
     option src              wan
     option target           ACCEPT
-    option dest_port        32767
+    option dest_port        80
+    option proto            tcp
+
 config redirect
+    option name syncthing
     option src              wan
-    option src_dport        32768
+    option src_dport        22001
     option dest_ip          192.168.1.2
     option dest             lan
 config rule
     option src              wan
     option target           ACCEPT
-    option dest_port        32768
-#### end rules for nfs ####
-
+    option dest_port        22001
 
-config redirect
-    option name mariadb
-    option src              wan
-    option src_dport        3306
-    option dest             lan
-    option dest_ip          192.168.1.2
-    option proto            tcp
-config rule
-    option src              wan
-    option target           ACCEPT
-    option dest_port        3306
-    option proto            tcp
 
 
 EOF
@@ -330,8 +257,9 @@ EOF
 
 dnsmasq_restart=false
 v cedit /etc/hosts <<EOF || dnsmasq_restart=true
+127.0.1.1 wrt
 192.168.1.1 wrt
-192.168.1.2 treetowl $HOME_DOMAIN faiserver
+192.168.1.2 treetowl b8.nz faiserver
 192.168.1.3 frodo
 192.168.1.4 htpc
 192.168.1.5 x2
@@ -351,12 +279,28 @@ EOF
 # avoid using the dns servers that my isp tells me about.
 if [[ $(uci get dhcp.@dnsmasq[0].resolvfile) ]]; then
     # default is '/tmp/resolv.conf.auto', we switch to the dnsmasq default of
-    # /etc/resolv.conf
+    # /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
+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
+fi
+
+if [[ $(uci get system.@system[0].hostname) != wrt ]]; then
+    v uci set system.@system[0].hostname=wrt
+    uci commit system
+fi
+
 
 # useful: http://wiki.openwrt.org/doc/howto/dhcp.dnsmasq