#!/bin/bash

####################################################################
#####                                                          #####
#####            AUTHOR: BORIS KIEFER (08/2019)                #####
#####                                                          #####
####################################################################

# THIS SOFTWARE IS DISTRIBUTED AS IS WITHOUT ANY WARRANTY
# USE AT YOUR OWN DISGRESSION
#
# ==> WORK ON A COPY OF THE RECOVERED FILES 
#     IN CASE SOMETHING GOES WRONG

echo
echo "OBJECTIVE: "
echo "==> MV FILES BY EXTENSION TO NEW DIRECTORIES"
echo "    doc, ppt, xls, and pdf < 100kB"
echo "==> MV FILES SMALLER THAN A GIVEN THRESHOLD"
echo

rm ZSKIPPED

# MAKE TARGET DIRECTORIES AS NEEDED 
dir=./ZBK_REC
echo "TARGET DIRECTORY: $dir"

# MINIMUM SIZE OF FILE TO BE RETAINED IN PROCESSING POOL
# ==> MAKE SURE TO UPDATE dirpdf VARIABLE AS YOU PROCEED
sizethr=100000

dirdoc=$dir/doc
dirppt=$dir/ppt
dirxls=$dir/xls
dirpdf=$dir/pdf100k

mkdir -p $dirdoc
mkdir -p $dirppt
mkdir -p $dirxls
mkdir -p $dirpdf

# START PROCESSING THE FILES
ndir=0
nfiles=0
nfdoc=0
nfxls=0
nfppt=0
nfpdf=0
nff=0
nfskip=0

# Loop over recovered directories
for direc in recup_dir.*
 do 

#direc=recup_dir.99

 pwd

 ndir=$(( $ndir + 1 ))
 echo "SCRIPT: ENTERING $direc"
 cd $direc

for cfile in $( ls -1 )     # LOOP OVER ALL FILES
 do

# echo
 echo "CURRENT FILE: $cfile"

 nfiles=$(( $nfiles +1 ))

 if [[ $cfile == *.doc ]]; then                # DOC 

  echo "==> DOC: $cfile"
  nfdoc=$(( $nfdoc + 1 ))
  mv $cfile ../$dirdoc

 elif [[ $cfile == *.ppt ]]; then              # PPT 

  echo "==> PPT: $cfile"
  nfppt=$(( $nfppt + 1 ))
  mv $cfile ../$dirppt

 elif [[ $cfile == *xls ]]; then              # XLS

  echo "==> XLS: $cfile"
  nfxls=$(( $nfxls + 1 ))
  mv $cfile ../$dirxls

 elif [[ $cfile == *.pdf ]]; then               # PDF

  echo "==> PDF: $cfile"
  nfpdf=$(( $nfpdf + 1 ))

# DETERMINE FILE SIZE AND DECICE IF KEPT OR MOVED
  size=`ls -ls $cfile | awk '{print $6}'`

# 100000 == 100 kB 
  if [[ $size -le $sizethr ]]; then             # TOO SMALL FILE SIZE

   echo "   ==> SIZE : $cfile"
   nff=$(( $nff + 1 ))
   mv $cfile ../$dirpdf 

  fi 

 else

  nfskip=$(( $nfskip + 1 ))
  echo $direc/$cfile >> ../ZSKIPPED

 fi

done   # END LOOP OVER FILES

cd ..

pwd

done   # END LOOP OVER DIRECTORIES

echo "SUMMARY: "
echo "DIRS                   : $ndir"
echo "NFILES                 : $nfiles"
echo "DOC                    : $nfdoc"
echo "PPT                    : $nfppt"
echo "XLS                    : $nfxls"
echo "PDF                    : $nfpdf"
echo "PDF < 100k       (mv)  : $nff"
echo "SKIPPED                : $nfskip"
