#!/bin/bash
#===============================================================================
#
#          FILE:  total_linked_size.sh
# 
#         USAGE:  ./total_linked_size.sh 
# 
#   DESCRIPTION:  (MacOSX only) This program tries to determine the
#                 total size of all the linked libraries that an
#                 executable uses. It requires that you first run
#                 the program through ktrace to get a ktrace.out file
#                 It doesn't add the size of the application binary itself
#                 to the total and it possibly includes system libraries
#                 in the total count
# 
#       OPTIONS:  ---
#  REQUIREMENTS:  ---
#          BUGS:  ---
#         NOTES:  ---
#        AUTHOR:   (), 
#       COMPANY:  
#       VERSION:  1.0
#       CREATED:  06/25/08 15:25:29 CST
#      REVISION:  ---
#===============================================================================

#echo buggy - needs to work out the column positions to cut from better
if [ -f ktrace.out ]
then
    #APP=`kdump -f ktrace.out | grep dylib | grep NAMI | grep -v "System" | sort | uniq | xargs ls -la 2> /dev/null | cut -c 27-37 | sed 's/^/a ; a\+=/g' | bc | tail -n 1`
    #TOTAL=`kdump -f ktrace.out | grep dylib | grep NAMI | sort | uniq | xargs ls -la 2> /dev/null | cut -c 27-37 | sed 's/^/a ; a\+=/g' | bc | tail -n 1`
    APP=`kdump -f ktrace.out | grep dylib | grep NAMI | grep -v "System" | sort | uniq | xargs ls -la 2> /dev/null | cut -c 34-41 | sed 's/^/a ; a\+=/g' | bc | tail -n 1`
    TOTAL=`kdump -f ktrace.out | grep dylib | grep NAMI | sort | uniq | xargs ls -la 2> /dev/null | cut -c 34-41 | sed 's/^/a ; a\+=/g' | bc | tail -n 1`
    echo "Calculated the following:"
    echo "   Application links with a total of $TOTAL bytes of dynamic libraries"
    echo "   Application links with a total of $APP bytes of dynamic libraries (excluding system libraries)"
else
    echo "Run the program with ktrace first to get a ktrace.out file"
fi

