#! /bin/bash

# Suppression des fichiers .dts/.sor/.msor/.csor les plus anciens dans /user/harddisk

DATE=$(date +"%F %T")
TMP_FILE="/tmp/file.list"
LOG_FILE="/var/log/purge_files.log"
FILE_EXTENSION_LIST="dts sor msor csor"
FOLDER_LIST="/user/harddisk"
MAX_FILES=5000


function purgefiles
{
    local FILE_EXTENSION=$1
    if ls *.${FILE_EXTENSION} 1>/dev/null 2>&1
    then
        COUNT=$( ls -1t *.${FILE_EXTENSION} | wc -l )
    else
        COUNT=0
    fi

    MAX_FILES_REACHED=$((COUNT > MAX_FILES))
    echo -e -n "${DATE} - ${PWD}/*.${FILE_EXTENSION} : COUNT = ${COUNT}, MAX_FILES = ${MAX_FILES}, MAX_FILES_REACHED = ${MAX_FILES_REACHED}" >> ${LOG_FILE}

    if [[ ${MAX_FILES_REACHED} -ne 0 ]]; then
        DIFF=$((COUNT - MAX_FILES))
        echo "      suppression de $DIFF fichiers" >> ${LOG_FILE}

        CPT=0
        ls -1rt *.${FILE_EXTENSION} > ${TMP_FILE}

        while read -r LINE; do
            if  [[ $CPT -ne $DIFF ]]; then
                rm $LINE
            else
                break
            fi
            ((CPT++))

        done <${TMP_FILE}

        rm ${TMP_FILE}
    else
        echo >> ${LOG_FILE}
    fi
}


for FOLDER in ${FOLDER_LIST}; do
    cd ${FOLDER}
    for FILE_EXTENSION in ${FILE_EXTENSION_LIST}; do
        purgefiles ${FILE_EXTENSION}
    done
    cd - > /dev/null
    echo >> ${LOG_FILE}
done
