#! /bin/sh

set -e

VERSION=$1
EXTRAVERSION=$2

CHANGELOGVERSION=$(grep '^ \* v' orinoco.c | tail -1 | cut -d' ' -f5)
CHANGELOGDATE=$(grep '^ \* v' orinoco.c | tail -1 | cut -d'-' -f3)

file_header_version () {
    head -1 $1 | tr '\t' ' ' | cut -f3 -d' '
}

version_string_version () {
    grep "^static char version\\[\\]" $1 | cut -f7 -d' '
#sed "s/^.*\"$1 \\([a-zA-Z0-9.]+\\) .*\".*$/\\1/"
}

version_def_version () {
    grep "^#define DRIVER_VERSION" $1 | cut -f3 -d' ' | tr -d \"
}

if [ $CHANGELOGVERSION != "v$VERSION" ]; then
    echo "** Changelog ($CHANGELOGVERSION) is not up-to-date for version $VERSION" >&2
    exit 1
fi

FILES_WITH_VERSION="orinoco.h"

for FILE in $FILES_WITH_VERSION; do
    DEFVERSION=$(version_def_version $FILE)

    if [ "x$DEFVERSION" != "x$VERSION$EXTRAVERSION" ]; then
	echo "** $FILE has wrong version ($DEFVERSION) in #define" >&2
#	exit 1
    fi
done

if ! expr "$CHANGELOGDATE" : ' [0-9][0-9]* [A-Z][a-z][a-z] 200[2-9] ' >/dev/null; then
    echo "** Changelog has bad date ($CHANGELOGDATE)" >&2
    exit 1
fi

if [ -f dist/orinoco-$VERSION.tar.gz ] ; then
    echo "** Version $VERSION already released" >&2
    exit 1
fi
