#!/bin/sh

# -----------------------------
# collect_new_packages.sh
# version 1.7.2.3
# -----------------------------

cd `dirname "${0}"`

[ -z "${USERNAME}" ] && USERNAME=`logname`
# sed 's/^[ \t]*//;s/[ \t]*$//' is used to delete both leading and trailing whitespace
USERHOME=`finger -l "${USERNAME}" 2>/dev/null | grep "Directory:" | cut -f1 | cut -d':' -f2 | sed 's/^[ \t]*//;s/[ \t]*$//'`
[ -z "${USERHOME}" ] && USERHOME="/home/"`logname`
printf "User: %s  \tHome directory: %s\n" "${USERNAME}" "${USERHOME}"

script_wdir=`pwd`
[ -z "${CHROOT_DIR}" ] && CHROOT_DIR="${script_wdir}"/mx-chroot
[ -z "${BUILDFARM_DIR}" ] && BUILDFARM_DIR="${USERHOME}/build-farm"
if [ ! -d "${CHROOT_DIR}" ]; then
  printf "ERROR: chroot directory '%s' doesn't exist. Abort.\n" "${CHROOT_DIR}"
  exit 1
fi
if [ ! -d "${BUILDFARM_DIR}" ]; then
  printf "ERROR: build farm directory '%s' doesn't exist. Abort.\n" "${BUILDFARM_DIR}"
  exit 1
fi

src_packages_dir=`find "${CHROOT_DIR}"/root -type d -name PACKAGES`
dst_packages_dir=`find "${BUILDFARM_DIR}" -type d -name PACKAGES`
if [ ! -z "${src_packages_dir}" ]; then
  list_of_src_packages=`find "${src_packages_dir}" -name *.srcpkg.* -print`
  list_of_bin_packages=`find "${src_packages_dir}" -name *.binpkg.* -print | grep -v "\.list"`
  list_of_kernel_packages=`find "${src_packages_dir}" -name *.kernelpkg.* -print | grep -v "\.list"`
fi

if [ ! -z "${list_of_src_packages}" ] || [ ! -z "${list_of_bin_packages}" ] || [ ! -z "${list_of_kernel_packages}" ]; then
  printf "Moving from '%s' to '%s':\n" "${src_packages_dir}" "${dst_packages_dir}"
else
  echo "No packages to collect."
fi

if [ ! -z "${list_of_src_packages}" ]; then
  echo "${list_of_src_packages}" | while read the_pkg
  do
    mv "${the_pkg}" "${dst_packages_dir}"/
    printf "\t%s\n" "${the_pkg}"
  done
fi
if [ ! -z "${list_of_bin_packages}" ]; then
  echo "${list_of_bin_packages}" | while read the_pkg
  do
    mv "${the_pkg}" "${dst_packages_dir}"/
    printf "\t%s\n" "${the_pkg}"
  done
fi
if [ ! -z "${list_of_kernel_packages}" ]; then
  echo "${list_of_kernel_packages}" | while read the_pkg
  do
    mv "${the_pkg}" "${dst_packages_dir}"/
    printf "\t%s\n" "${the_pkg}"
  done
fi

cd "${dst_packages_dir}"
chown -R "${USERNAME}" ./* && chgrp -R "${USERNAME}" ./* && chmod -R ug+w ./*

# self-update
if [ -d "${BUILDFARM_DIR}"/SERVICE-SCRIPTS ]; then
  script_name=`basename "${0}"`
  rm -f "${script_wdir}"/"${script_name}".NEW
  cp "${BUILDFARM_DIR}"/SERVICE-SCRIPTS/"${script_name}" "${script_wdir}"/"${script_name}".NEW
  diff -u "${script_wdir}"/"${script_name}" "${script_wdir}"/"${script_name}".NEW 1>/dev/null 2>&1 && \
    rm -f "${script_wdir}"/"${script_name}".NEW
  [ -f "${script_wdir}"/"${script_name}".NEW ] && printf "found new version of this script, see '%s'\n" "${script_name}".NEW
fi

echo "-done-"
