#!/bin/bash
#
# This script sets up systemtap server on Ubuntu system
# Shall work on debian, but not tested there yet
#
# 
# Copyright © 2011 Canonical Ltd. 
# Author: Alex Wolfson awolfson (alex.wolfson@canonical.com), 2011
# License: GPL V2 or 3re # License: GPL V2 or 3re 
#
# see http://jfsaucier.wordpress.com/tutorials-and-howto/systemtap-server-and-client/ for details
# also http://doc.opensuse.org/products/opensuse/openSUSE/opensuse-tuning/cha.tuning.systemtap.html

USAGE(){
    echo -e "run uname -r to see what is running
    \nUsage: $(basename $0) {--release|--rel} kernel release, like 3.0.0-12-generic \n \
    \nExample:\n \
    $(basename $0) --release 3.0.0-12-generic"
}

if [ $# == 0 ] ; then USAGE; exit; fi

trap  cleanup 1 2 3 6

cleanup()
{
  echo "Caught Signal ... cleaning up."
  echo "Done cleanup ... quitting."
  exit 1uname 
}
release=
version=
architecture=
par=1
while [ "x$1" != "x" ]
do
  case "$1" in
    --release|--rel) shift; release=$1; echo -e "release=$release"; shift;;
    -h|--help|--h) USAGE; exit 1 ;;
    *) echo -e "parameter $1 is not supported"; USAGE; exit 1;;
  esac
  par=par+1
done
sudo add-apt-repository ppa:awolfson/systemtap
echo "deb http://ddebs.ubuntu.com $(lsb_release -cs) main restricted universe multiverse" | \
sudo tee /etc/apt/sources.list.d/ddebs.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 428D7C01
sudo apt-get update
#installing debug symbols for $release
imagename=linux-image-${release}-dbgsym
sudo apt-get install $imagename
if [[ $? -ne 0 ]] ; then 
	echo "debug symbols for $imagename can not be installed"
	exit $?
fi
sudo mkdir -p /var/lib/stapserver
sudo groupadd -g 155 -r stap-server
sudo useradd -c "SystemTap Compile Server" -u 155 -g stap-server -d /var/lib/stapserver -m -r -s /bin/false stap-server
sudo chown -R stap-server.stap-server /var/lib/stapserver/

sudo apt-get install -y chkconfig
sudo apt-get install -y systemtap-server

#Enter a password for the SystemTap server certificate and confirm it.
#This generates a certificate (stap.cert) that is stored in the systemtap-server user's home directory—in this case: /var/lib/stapserver/.systemtap/ssl/server. 
sudo su -s /bin/sh - stap-server -c  /usr/lib/systemtap/stap-gen-cert
sudo su -s /bin/sh - stap-server -c /usr/lib/systemtap/stap-start-server

#sudo stap-server start
#sudo avahi-daemon start
#sudo chkconfig stap-server on
#sudo chkconfig avahi-daemon on