#!/bin/bash

################################################################################
#      This file is part of OpenELEC - http://www.openelec.tv
#      Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
#
#  OpenELEC is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 2 of the License, or
#  (at your option) any later version.
#
#  OpenELEC 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 General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with OpenELEC.  If not, see <http://www.gnu.org/licenses/>.
################################################################################

. config/options $1

clean_package() {
  printf "%${BUILD_INDENT}c ${boldred}CLEAN${endcolor}    $1\n" ' '>&$SILENT_OUT
  export BUILD_INDENT=$((${BUILD_INDENT:-1}+$BUILD_INDENT_SIZE))

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

  for i in $BUILD/$1-*; do
    if [ -d $i -a -f "$i/.libreelec-unpack" ] ; then
      . "$i/.libreelec-unpack"
      if [ "$STAMP_PKG_NAME" = "$1" ]; then
        printf "%${BUILD_INDENT}c ${boldred}*${endcolor} ${red}Removing $i ...${endcolor}\n" ' '>&$SILENT_OUT
        rm -rf $i
      fi
    else
      # force clean if no stamp found (previous unpack failed)
      printf "%${BUILD_INDENT}c * Removing $i ...\n" ' '>&$SILENT_OUT
      rm -rf $i
    fi
  done
  rm -f $STAMPS/$1/build_*
}

if [ "$1" = "--all" ]; then
  if [ ! -z "$2" ]; then
    for PROJECT in $(ls -1 projects); do
      for archfile in projects/$PROJECT/linux/linux.*.conf; do
        if [ ! -f "$archfile" ]; then
          archfile="$(ls -1 projects/$PROJECT/linux/*/linux.*.conf | head -1)"
        fi
        ARCH=`echo $archfile | sed -n '$s/\.conf//;$s/.*\.//p'`
        PROJECT=$PROJECT ARCH=$ARCH ./scripts/clean $2
      done
    done
  fi
else
  if [ ! -z "$1" ]; then
    clean_package $1
  fi
fi

