#! /usr/bin/env bash
# Copyright (c) 2020 DisplayLink (UK) Ltd.

set -e
set -u

if [ "${#}" -lt "2" ]; then
  echo "Usage: ${0} MAJOR MINOR [PATCH]"
  exit 1
fi

MAJOR="${1}"
MINOR="${2}"
PATCH="${3-0}"

sed -i "s/^#define LIBEVDI_VERSION_MAJOR .*$/#define LIBEVDI_VERSION_MAJOR ${MAJOR}/" library/evdi_lib.h
sed -i "s/^#define LIBEVDI_VERSION_MINOR .*$/#define LIBEVDI_VERSION_MINOR ${MINOR}/" library/evdi_lib.h
sed -i "s/^#define LIBEVDI_VERSION_PATCH .*$/#define LIBEVDI_VERSION_PATCH ${PATCH}/" library/evdi_lib.h

sed -i "s/^LIBVER := .*$/LIBVER := ${MAJOR}.${MINOR}.${PATCH}/" library/Makefile
sed -i "s/^LIBABI := .*$/LIBABI := ${MAJOR}/" library/Makefile
sed -i "s/^LIBABI := .*$/LIBABI := ${MAJOR}/" pyevdi/Makefile

sed -i "s/^PACKAGE_VERSION=.*$/PACKAGE_VERSION=${MAJOR}.${MINOR}.${PATCH}/" module/dkms.conf

sed -i "s/^evdi_version=.*$/evdi_version='${MAJOR}.${MINOR}.${PATCH}'/" ci/deb_config module/dkms_install.sh

sed -i "s/^#define DRIVER_MAJOR .*$/#define DRIVER_MAJOR ${MAJOR}/" module/evdi_platform_drv.h
sed -i "s/^#define DRIVER_MINOR .*$/#define DRIVER_MINOR ${MINOR}/" module/evdi_platform_drv.h
sed -i "s/^#define DRIVER_PATCH .*$/#define DRIVER_PATCH ${PATCH}/" module/evdi_platform_drv.h

sed -i "s/^MODVER=.*/MODVER=${MAJOR}.${MINOR}.${PATCH}/" module/Makefile


sed -i "s/^#define DRIVER_DATE   .*$/#define DRIVER_DATE   \"$(date +'%Y%m%d')\"/" module/evdi_platform_drv.h

sed -i "s/^VERSION_MAJOR =.*$/VERSION_MAJOR = ${MAJOR}/" pyevdi/test/test_version.py
sed -i "s/^VERSION_MINOR =.*$/VERSION_MINOR = ${MINOR}/" pyevdi/test/test_version.py


git add ci/deb_config

git add library/evdi_lib.h
git add library/Makefile

git add module/evdi_platform_drv.h
git add module/Makefile
git add module/dkms.conf
git add module/dkms_install.sh

git add pyevdi/test/test_version.py
git add pyevdi/Makefile

git commit -m "Set version to ${MAJOR}.${MINOR}.${PATCH}"
tag="v${MAJOR}.${MINOR}.${PATCH}"
git tag "${tag}"
echo -e "Please push tag ${tag} with: \\ngit push origin refs/tags/${tag}:refs/tags/${tag}"

