#!/bin/sh
# Small script to generate the perf-man tarball. The script relies on having
# LINUX_GIT set in your local .bashrc. By default the script will use the
# the kernel version of the upstream tree set in LINUX_GIT. Use --version=x.y
# to set a specific version.

# [Default] eg. ./scritps/generate-perf-man
# eg. ./scripts/generate-perf-man --version=4.8
function usage(){
    echo
    echo "Helps generate the perf-man tarball                              "
    echo "-h, --help                                                       "
    echo
    echo "./generate-perf-man.sh   #Generates using upstream kernel version"
    echo
    echo "./generate-perf-man.sh --version=x.y  #Generate using x.y version"
}

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

if [ ! -d "$LINUX_GIT" ]; then
    echo "Error: \$LINUX_GIT is not set to the upstream git tree."
    exit 1
fi

BASEDIR=$(dirname "$(cd $(dirname $BASH_SOURCE[0]) && pwd)")
pushd "$LINUX_GIT" > /dev/null
KERNEL_VERSION=$( awk '/^VERSION =/ {print $3}' Makefile )
KERNEL_PATCHLEVEL=$( awk '/^PATCHLEVEL =/ {print $3}' Makefile )

if [ ! -z "$@" ]; then
    for opt in "$@"; do
	case $opt in
	    --version=*.*)
		version="${opt#*=}"
		KERNEL_VERSION=$( awk -F. '{print $1}' <<< $version )
		KERNEL_PATCHLEVEL=$( awk -F. '{print $2}' <<< $version )
		;;
	    -h | --help)
		usage
		exit 0
		;;
	    *)
		;;
	esac
    done
fi
cd tools/kvm/kvm_stat/
make man
mv kvm_stat.1 ../../perf/Documentation
cd ../../perf/Documentation/
make
tar -czvf $BASEDIR/perf-man-${KERNEL_VERSION}.${KERNEL_PATCHLEVEL}.tar.gz *.1
make clean
rm kvm_stat.1
popd
