#!/bin/bash
set -eux
set -o pipefail

# --------------------------------------------------------------
# Run by `yarn rpm`
#
# Required environment variables:
#
# RPM_REPO=/opt/ses_iso/sesrepo/sesrpm/
# --------------------------------------------------------------

export no_proxy="henson.se,127.0.0.1,localhost"

# --- Build and test in docker
docker-compose pull
docker-compose run --rm target /bin/bash -c "yarn install; yarn ci"
docker-compose down

# --- Check if version exists

name=`echo $npm_package_name | awk -F/ '{print $NF}'`

if ls $RPM_REPO/Henson$name-$npm_package_version-*.rpm 1> /dev/null 2>&1; then
  echo "Version $npm_package_version already existed. Skipping publish."
  exit 0
fi

# --- Pack the release files to ./package
rm -rf package *.tgz
yarn install --production --prefer-offline
# Dependencies defined in bundledDependencies are packed
# yarn pack doesn't support it: https://github.com/yarnpkg/yarn/issues/2636
npm pack
tar -zxf *.tgz

# --- Modify spec file
cp rpm/rpm.spec rpm/target.spec

timestamp=`date +%Y%m%d%H%M%S`
sed -i -e "s/__timestamp__/${timestamp}/" rpm/target.spec

commit=`git log -1 | sed -n '/^commit/p' | sed 's/commit //'`
sed -i -e "s/__commit__/${commit}/" rpm/target.spec

sed -i -e "s/__name__/${name}/" rpm/target.spec
sed -i -e "s/__version__/${npm_package_version}/" rpm/target.spec
sed -i -e "s/__description__/${npm_package_description}/" rpm/target.spec

# --- Build RPM
rpmbuild -ba rpm/target.spec

# --- Copy RPM to repo (available on CI server)
cp /var/tmp/x86_64/Henson$name*.rpm $RPM_REPO
rm /var/tmp/x86_64/Henson$name*.rpm
