#!/bin/bash

#
#  GStreamer
#  Copyright (C) 2015-2021 Intel Corporation
#
#  Permission is hereby granted, free of charge, to any person obtaining a
#  copy of this software and associated documentation files (the "Software"),
#  to deal in the Software without restriction, including without limitation
#  the rights to use, copy, modify, merge, publish, distribute, sublicense,
#  and/or sell copies of the Software, and to permit persons to whom the
#  Software is furnished to do so, subject to the following conditions:
#
#  The above copyright notice and this permission notice shall be included in
#  all copies or substantial portions of the Software.
#
#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
#  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
#  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
#  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
#  DEALINGS IN THE SOFTWARE.
#
#  Alternatively, the contents of this file may be used under the
#  GNU Lesser General Public License Version 2.1 (the "LGPL"), in
#  which case the following provisions apply instead of the ones
#  mentioned above:
#
#  This library is free software; you can redistribute it and/or
#  modify it under the terms of the GNU Library General Public
#  License as published by the Free Software Foundation; either
#  version 2 of the License, or (at your option) any later version.
#
#  This library is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#  Library General Public License for more details.
#
#  You should have received a copy of the GNU Library General Public
#  License along with this library; if not, write to the
#  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
#  Boston, MA 02111-1307, USA.
#

set -ue
set -o pipefail

# The path to the icamera repository root.
srcdir=$(readlink -f "$(dirname $0)/../")

build_number="${1:-1}" # Set build_number to 1 if it's not given.

# Cleanup tempdir on exit or interrupt.
tempdir=$(mktemp -d)
trap "rm -rf ${tempdir}" SIGINT SIGTERM EXIT

# Create directories needed by rpmbuild.
mkdir -p ${tempdir}/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

latest_commit_id=$(git log --pretty=format:'%h' -n1)

# The RPM version and release tags can be overriden from the envrionment
rpm_version=${_RPM_VERSION:-1.0.0}
rpm_release=${_RPM_RELEASE:-${build_number}.$(date "+%Y%m%d").${latest_commit_id}}

rpmbuild --define "_buildshell /bin/bash"  \
         --define "_topdir   ${tempdir}/rpmbuild" \
         --define "_srcdir   ${srcdir}" \
         --define "_tmppath  ${tempdir}/tmp" \
         --define "version   ${rpm_version}" \
         --define "release   ${rpm_release}" \
         -bb "$(dirname $0)"/icamerasrc.spec | tee "$tempdir/rpmbuild.log"

# Copy rpm to source directory.
rpm_path=$(awk '/^Wrote:.*rpm$/ { print $2; exit }' "$tempdir/rpmbuild.log")
cp -v "$rpm_path" "$srcdir/rpm"
