#!/bin/bash

# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)

. config/options "${1}"

clean_package() {
  build_msg "CLR_CLEAN" "CLEAN" "${1}" "indent"

  if [ "${CLEAN_SOURCES}" = "true" ]; then
    rm -rf "${SOURCES}/${1}"
    return
  fi

  # Use a wilcard here to remove all versions of the package
  for i in "${BUILD}/${1}-"*; do
    if [ -d "${i}" -a -f "${i}/.jelos-unpack" ]; then
      . "${i}/.jelos-unpack"
      if [ "${STAMP_PKG_NAME}" = "${1}" ]; then
        build_msg "CLR_WARNING" "*" "$(print_color "CLR_WARNING_DIM" "Removing ${i} ...")"
        rm -rf "${i}"
      fi
    elif [ -d "${i}" -a -f "${i}/.jelos-package" ]; then
      # force clean if no stamp found (previous unpack failed)
      . "${i}/.jelos-package"
      if [ "${INFO_PKG_NAME}" = "${1}" ]; then
        build_msg "" "" "* Removing ${i} ..."
        rm -rf "${i}"
      fi
    fi
  done
  for dir in "${STAMPS}/${1}" "${BUILD}/image/.stamps/${1}"
  do
    if [ -d "${dir}" ]
    then
      rm -rf ${dir}
      mkdir ${dir}
    fi
  done
}

if [ "${1}" = "--all" -a -n "${2}" ]; then
  for build_dir in $(ls -1d "${ROOT}/build."*); do
    load_build_config "${build_dir}" && "${SCRIPTS}/clean" "${2}"
  done
elif [ -n "${1}" ]; then
  clean_package "${1}"
fi

