#!/bin/bash echo =============================== echo Prepping to run swabber wrapper if [ "X$1" == "X" ] ; then echo "Usage: swabprof " exit 1 fi if [ ! `which strace` ] ; then echo You need to have strace installed to run swabprof exit 1 fi prog_path=$( cd -P -- "$(dirname -- "$0")" && pwd -P ) basedir=`pwd`/.swabber mkdir -p ${basedir}/distro_blob mkdir -p ${basedir}/logs mkdir -p ${basedir}/reports default_filter_dir=@filtersdir@ if [ -d ${basedir}/distros ] ; then filter_dir=${basedir}/distros else filter_dir=${default_filter_dir} fi ${prog_path}/update_distro ${basedir}/distro_blob tag_name=$(echo $1 | sed -e 's/\//-/g') if [ "X$2" != "X" ] ; then tag_name=$tag_name-$(echo $2) fi if [ "X$3" != "X" ] ; then tag_name=$tag_name-$(echo $3) fi tag_name=$(echo ${tag_name} | sed -e 's/\//-/g' | sed -e 's/\-\-/\-/g') function find_unique { base=$1 suffix=$2 filename="${base}.${suffix}" i=0 while [ -f ${filename} ] ; do i=`expr $i + 1` filename="${base}.${i}.${suffix}" done echo ${filename} } log_filename=$(find_unique ${basedir}/logs/${tag_name} log) report_filename=$(find_unique ${basedir}/reports/report txt) extra_report_filename=$(find_unique ${basedir}/reports/extra txt) echo Swabber is logging to $log_filename, $report_filename echo Done prepping for swabber echo ========================= strace -f -o ${log_filename} -e trace=open,execve "$@" ${prog_path}/swabber -c all -l ${log_filename} -d ${basedir}/distro_blob -o ${report_filename} -r ${extra_report_filename} -f ${filter_dir} -p `pwd` echo ========================= echo Processing swabber report echo Swabber report is: cat ${report_filename} echo You can find this report in ${report_filename}, more detail is in ${extra_report_filename} echo Done with swabber report echo =========================