perf-archive.sh 739 B

1234567891011121314151617181920212223242526272829303132
  1. #!/bin/bash
  2. # perf archive
  3. # Arnaldo Carvalho de Melo <acme@redhat.com>
  4. PERF_DATA=perf.data
  5. if [ $# -ne 0 ] ; then
  6. PERF_DATA=$1
  7. fi
  8. DEBUGDIR=~/.debug/
  9. BUILDIDS=$(mktemp /tmp/perf-archive-buildids.XXXXXX)
  10. perf buildid-list -i $PERF_DATA --with-hits > $BUILDIDS
  11. if [ ! -s $BUILDIDS ] ; then
  12. echo "perf archive: no build-ids found"
  13. rm -f $BUILDIDS
  14. exit 1
  15. fi
  16. MANIFEST=$(mktemp /tmp/perf-archive-manifest.XXXXXX)
  17. cut -d ' ' -f 1 $BUILDIDS | \
  18. while read build_id ; do
  19. linkname=$DEBUGDIR.build-id/${build_id:0:2}/${build_id:2}
  20. filename=$(readlink -f $linkname)
  21. echo ${linkname#$DEBUGDIR} >> $MANIFEST
  22. echo ${filename#$DEBUGDIR} >> $MANIFEST
  23. done
  24. tar cfj $PERF_DATA.tar.bz2 -C $DEBUGDIR -T $MANIFEST
  25. rm -f $MANIFEST $BUILDIDS
  26. exit 0