#!/bin/bash
#
# This is a dirty script for convert an xCAT-genesis-base rpm package to
# a debian package.
#

# xCAT-genesis-base-x86_64-2.13.10-snap201801090246.noarch.rpm
RPM_PACKAGE="$1"
if [ -z "${RPM_PACKAGE}" ]
then
	echo "Usage: ${0##*/} /path/to/xCAT-genesis-base.rpm"
	exit 0
fi

set -x

[ -n "${RPM_PACKAGE}" ] || exit 1
[ -f "${RPM_PACKAGE}" ] || exit 1

umask 0022

EXTRACT_DIR="${RPM_PACKAGE##*/}"
EXTRACT_DIR="${EXTRACT_DIR%%-snap*}"

rm -rf "${EXTRACT_DIR}"
rm -rf "${EXTRACT_DIR}.orig"
alien -d -g -c -k "${RPM_PACKAGE}" || exit 1

PACKAGE_ARCH="${EXTRACT_DIR%-*}"
PACKAGE_ARCH="${PACKAGE_ARCH##*-}"

if [[ ${EXTRACT_DIR} =~ -x86_64- ]]
then
	rm -rf "${EXTRACT_DIR//x86_64/amd64}"
	mv "${EXTRACT_DIR}" "${EXTRACT_DIR//x86_64/amd64}"
	EXTRACT_DIR="${EXTRACT_DIR//x86_64/amd64}"

	sed -i -e 's/x86-64/amd64/g' "${EXTRACT_DIR}/debian/control"
	sed -i -e 's/x86-64/amd64/g' "${EXTRACT_DIR}/debian/changelog"
fi

sed -i -e "/^Description:/i Breaks: xcat-genesis-scripts-${PACKAGE_ARCH//x86_64/amd64} (<< 2.13.10)" "${EXTRACT_DIR}/debian/control"

cat >"${EXTRACT_DIR}/debian/preinst" <<EOF
#!/bin/bash

[ -d /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/bin ] &&
	rm -rf /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/bin
[ -d /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/sbin ] &&
	rm -rf /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/sbin
[ -d /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/lib ] &&
	rm -rf /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/lib
[ -d /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/lib64 ] &&
	rm -rf /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/lib64
[ -d /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/var/run ] &&
	rm -rf /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/var/run

exit 0
EOF

chmod 0755 "${EXTRACT_DIR}/debian/preinst"

( cd "${EXTRACT_DIR}" && debian/rules binary )
