#!/bin/sh arg=$1 shift if [ -f "config.status" ] ; then prefix=$(cat config.status | grep @prefix@ | awk -F, '{print $3}') fi if [ -f "config.status" -a -z "$prefix" ] ; then prefix=$(cat config.status | grep '"prefix"' | awk -F\" '{print $4}') fi if [ -z "$prefix" -a -d "/usr/local/freeswitch" ] ; then prefix="/usr/local/freeswitch" fi if [ -z "$prefix" -a -d "/opt/freeswitch" ] ; then prefix="/opt/freeswitch" fi if [ -z "$prefix" ] ; then prefix=$FS_PREFIX fi if [ -z "$prefix" -a -f "./bin/freeswitch" ] ; then prefix=`pwd` fi if [ -z "$prefix" ] ; then echo "Unable to locate freeswitch prefix directory." exit 255 fi if [ "$arg" = "gcore" ] ; then user=$1 shift fspid=`cat $prefix/run/freeswitch.pid` echo "pulling gcore $fspid" gcore -o core $fspid else user=$arg fi core=`ls -1t core* | head -1 2> /dev/null` if [ -z "$core" ] ; then core=`ls -1 core 2> /dev/null` fi if [ -z "$core" ] ; then core=`ls -1 freeswitch.core 2> /dev/null` fi if [ -z "$core" ] ; then echo "You must be in the current directory with a core file from FreeSWITCH!" exit 255 fi if [ -x `which gdb` ] ; then echo "Found gdb" else echo "Unable to locate gdb, is it installed?" exit 255 fi echo "core is $core" line="--------------------------------------------------------------------------------" mypwd=`pwd` tmpdir=/tmp/fscore_pb.tmp post_file=$mypwd/fscore_pb.post if [ -z $user ] ; then user=$SUDO_USER fi if [ -z $user ] ; then user=$USER fi if [ -z $user ] ; then user="anon" fi post_cmd="" command -v wget >/dev/null 2>&1 if [ $? -eq 0 ]; then post_cmd="wget --output-file=/dev/null --output-document=/tmp/fscore_pb.tmp/pb_out --http-user=pastebin --http-password=freeswitch http://pastebin.freeswitch.org --post-file=$post_file" fi if [ -z "$post_cmd" ]; then command -v curl >/dev/null 2>&1 if [ $? -eq 0 ]; then post_cmd="curl -o /tmp/fscore_pb.tmp/pb_out --user pastebin:freeswitch http://pastebin.freeswitch.org -d paste=Send -d remember=0 -d poster=$user -d format=none -d expiry=f --data-urlencode code2@$post_file" fi fi if [ -z "$post_cmd" ]; then echo "Unable to locate wget or curl." exit 255 fi if [[ "$post_cmd" == wget* ]]; then echo -n "paste=Send&remember=0&poster=$user&format=none&expiry=f&code2=" > $post_file fi echo "Gathering Data Please Wait........." #Linux if [ $(uname) == "Linux" ]; then echo "LSB RELEASE:" >> $post_file echo $line >> $post_file if [ -f /etc/redhat-release ] ; then cat /etc/redhat-release >> $post_file else lsb_release -a >> $post_file fi echo "CPU INFO:" >> $post_file echo $line >> $post_file cat /proc/cpuinfo >> $post_file #Mac elif [ $(uname) == "Darwin" ]; then system_profiler SPSoftwareDataType SPHardwareDataType >> $post_file fi; echo "GIT INFO:" >> $post_file echo $line >> $post_file echo -n "Revision: " >> $post_file if [ -d ".git" ] ; then git log -1 | cat >> $post_file printf "\n\n\n" >> $post_file git status >> $post_file else echo "Not run from an git managed directory." >> $post_file fi echo "GDB BACKTRACE:" >> $post_file echo $line >> $post_file cat > fscore_pb.$$.gdb <> $post_file 2>/dev/null rm fscore_pb.$$.gdb rm -fr $tmpdir mkdir -p $tmpdir cd $tmpdir echo $post_cmd $post_cmd mv $post_file $tmpdir echo "Finished." if [ -e /tmp/fscore_pb.tmp/pb_out ]; then pb=`cat /tmp/fscore_pb.tmp/pb_out | grep parent_pid | awk -F \" '{print $6}'` echo "Please report http://pastebin.freeswitch.org/$pb to the developers." else echo "Please check recent posts on http://pastebin.freeswitch.org/ and find your issue to report to the developers." fi