blob: 3b1d6a1d871e1d8efa2c2aa988e686ca23a489d9 [file] [log] [blame]
#!/usr/bin/env bash
# simple function that can be called via 'find' that removes and displays name of removed directory
function removeIf ()
{
# echo "arg: $1";
foundDirectory=$1
if [ -z "${foundDirectory}" ]
then
echo "ERROR: No argument. This function requires a directory as an argument. " ;
return 1;
fi
if [ ! \( -d "${foundDirectory}" \) ]
then
echo "ERROR: " "${foundDirectory}" ", is not a directory. This function requires a directory as an argument. "
return 2;
fi
# should already be in foundDirectory, if execDir used (and execDir, in a 'find' is recommended, as more secure)
#cd $foundDirectory
rm -fr "${foundDirectory}"
rcode=$?
if [ $rcode -eq 0 ]
then
echo " removed: " "${foundDirectory}";
else
echo "WARNING: rm returned non zero return code: " $rccode ". could not remove " "${foundDirectory}";
fi
return $rcode;
}
# function that can remove a directory (e.g. via find) but checks to make sure not to remove the last one (or, last 'saveAtLeast')
function removeArtifactsDirIf ()
{
# echo "arg: $1";
foundDirectory=$1
if [ -z "${foundDirectory}" ]
then
echo "ERROR: No argument. This function requires a directory as an argument. " ;
return 1;
fi
nSave=$2
if [ -z $nSave ]
then
nSave=1;
fi
if [ ! \( -d "${foundDirectory}" \) ]
then
echo "ERROR: " "${foundDirectory}" ", is not a directory. This function requires a directory as an argument. "
return 2;
fi
# should already be in appropriate directory, if execDir in 'find' is used (and execDir, in a 'find' is recommended, as more secure)
# cd "${foundDirectory}"
# move up one so we can examine syblings
#cd ..
currentDirectory=`pwd`
echo " current working directory: $currentDirectory";
ndirs=`ls -lA | wc -l`
ndirs=$(($ndirs - 1)); # don't count the "totals" line
# echo "NDirs: $ndirs"
# if only one left, do not remove it, no matter how old
# or, as improved ... if less than or equal to nSave is left, do not remove
if [ $ndirs -le $nSave ]
then
return 0;
fi
# To have no directories is unexpected, since otherwise this method should not have been called.
# So, this check is just a safety check.
if [ $ndirs -lt 1 ]
then
exit 101;
fi
rm -fr "${foundDirectory}"
rcode=$?
if [ $rcode -eq 0 ]
then
echo " removed: " "${foundDirectory}";
else
echo "WARNING: rm returned non zero return code: " $rccode ". could not remove " "${foundDirectory}";
fi
return $rcode;
}