#!/usr/bin/env bash # This is a helper script to run mgmt and capture and filter stack traces. Any # time mgmt crashes with a trace, it will first be filtered, and then displayed # with `less`. f1=`mktemp /tmp/tmp.X'X'X` f2=`mktemp /tmp/tmp.X'X'X` # run the program until it ends # XXX: we need an --ignore-exit signal blocker too so we can ^\ #$@ 2>&1 | tee --ignore-interrupts --ignore-exit "$f1" $@ 2>&1 | sigtee "$f1" # clean up when we're done function cleanup { filter-golang-stack.py "$f1" > "$f2" if [ $? -eq 0 ]; then less "$f2" fi if [ "$1" = "--preserve" ]; then echo "logged:" echo "$f1" echo "$f2" else rm "$f2" rm "$f1" fi } trap cleanup EXIT