dev/production/download_site/safeDelete.sh

49 lines
1.3 KiB
Bash

#!/bin/bash
# Before deleting a file ensure that
# 1. The filename has the right FORMAT
# 2. The file is a TYPE of compressed file
# 3. The file has an EXTENSION of compresed file
[ ${#} -ne 2 ] && echo "safedelete.sh: Some Argument is missing" && exit
[ ! -f ${1} ] && echo "safedelete.sh: Argument is not a file: ${1}" && exit
[ ${2} -gt 3600 ] && echo "safedelete.sh: Waiting time is more that one hour" && exit
#
# 1. Check the filename FORMAT
#
FORMAT=$(basename ${1} | grep -E "^[a-zA-Z0-9]{32}-.*\.(zip|gz|7zip|tar|tar\.gz|tar\.bz2)$" )
if [ "${FORMAT}" != "" ];then
#
# 2. Check the file TYPE
#
TYPE=$(file --mime-type ${1} | awk '{print $2}' | awk -F/ '{print $2}' )
if [ "${TYPE}" == "zip" ] ||
[ "${TYPE}" == "x-tar" ] ||
[ "${TYPE}" == "x-bz2" ] ||
[ "${TYPE}" == "gzip" ] ||
[ "${TYPE}" == "7zip" ];then
#
# 3. Check the file EXTENSION
#
EXTENSION=$(echo ${1} | awk -F\. '{print $NF}')
if [ "${EXTENSION}" == "zip" ] ||
[ "${EXTENSION}" == "tar" ] ||
[ "${EXTENSION}" == "bz2" ] ||
[ "${EXTENSION}" == "gz" ] ||
[ "${EXTENSION}" == "7zip" ];then
sleep ${2} && rm -f "${1}"
else
echo "Wrong file extension" && exit
fi
else
echo "Wrong file type" && exit
fi
else
echo "Wrong filename format" && exit
fi