#!/bin/bash

# Author: Thomas Renninger <trenn@suse.de>
# This code is covered and distributed under
# the General Public Licence v2

function usage(){
    echo "$(basename $0) [ git_tag [ tag_to_use ] ]"
    echo
    echo "git_tag     Must be a valid kernel git tag, for example v3.1"
    echo "            if git_tag is not passed HEAD will be used which"
    echo "            may produce a package incompatible tarball name"
    echo "            BEST ALWAYS PASS AN EXISTING TAG"
    echo "            cpupower got introduced in 3.1-rc1"
    echo "tag_to_use  obs does not like -rcX as a version tag. Pass a verion"
    echo "            tag you like to use (e.g. 3.13 instead of 3.13-rc7"
    echo
    echo "export GIT_DIR= environment variable if the git repo is not the current directory"
    echo "For example: GIT_DIR=/path_to_git_repo/.git"
}
set -x
if [ $# -gt 0 ];then
    if [ "$1" = "-h" ] || [ "$1" == "--help" ];then
	usage
	exit 0
    fi
    GIT_TAG="$1"
    echo "Exporting cpupower from kernel version $GIT_TAG"
    # convert - to . as package versions do not allow -
    if [ $# -eq 1 ];then
	VERSION="${GIT_TAG/-/.}"
        # remove leading v
	VERSION="-${VERSION#v}"
    elif [ $# -eq 2 ];then
	VERSION="${2/-/.}"
        # remove leading v
	VERSION="-${VERSION#v}"
    elif [ $# -gt 2 ];then
	usage
	exit 1
    fi
else
    GIT_TAG="HEAD"
    VERSION=""
fi

# Tried to do this with one git archive command, but
# --remote= param seem not to be configured for kernel.org gits

# set -x
DIR=`mktemp -d`
pushd "$DIR"
git archive --format=tar $GIT_TAG tools/power/cpupower |tar -x
mv tools/power/cpupower cpupower${VERSION}
tar -cvjf cpupower${VERSION}.tar.bz2 cpupower${VERSION}
popd
TDIR=`mktemp -d`
pushd "$TDIR"

git archive --format=tar $GIT_TAG tools/power/x86/turbostat |tar -x
if [ "$TURBOSTAT_VERSION"x == ""x ];then
    TURBOSTAT_VERSION=$(grep "turbostat version" tools/power/x86/turbostat/turbostat.c |grep fprintf  |sed 's/.*turbostat version \([0-9][0-9].[0-9][0-9].[0-9][0-9]\).*/\1/')
fi
TURBOSTAT_VERSION=$(echo "-$TURBOSTAT_VERSION")
mv tools/power/x86/turbostat turbostat${TURBOSTAT_VERSION}
git checkout $GIT_TAG arch/x86/include/asm/msr-index.h
git checkout $GIT_TAG arch/x86/include/asm/intel-family.h
cp arch/x86/include/asm/intel-family.h turbostat${TURBOSTAT_VERSION}
cp arch/x86/include/asm/msr-index.h turbostat${TURBOSTAT_VERSION}
tar -cvjf turbostat${TURBOSTAT_VERSION}.tar.bz2 turbostat${TURBOSTAT_VERSION}
popd
mv "$DIR/cpupower${VERSION}".tar.bz2 .
rm -rf "$DIR"
mv "$TDIR/turbostat${TURBOSTAT_VERSION}".tar.bz2 .
rm -rf "$TDIR"
# set +x
echo cpupower${VERSION}.tar.bz2
echo turbostat${TURBOSTAT_VERSION}.tar.bz2
