#! /bin/bash
# Last edited on 2013-10-31 20:31:22 by stolfilocal

# Collects all source files needed to compile and test
# the "cryptoy" suite of programs into a specified directory.

dir="$1"; shift
if [[ ! -d ${dir} ]]; then
  echo "${dir} is not a directory" 1>&2; exit 1;
fi

function require() {
  fname="$1"; shift;
  if [[ ! -s ${fname} ]]; then
    echo "file ${fname} is missing" 1>&2;
  fi
}

cp -avu ../JSLIBS/libcryptoy/*.{h,c} ${dir}/
cp -avu ../JSLIBS/libjs/{ref,jswsize}.h ${dir}/
cp -avu ../JSLIBS/libjs/{argparser,vec,affirm,bool}.{h,c} ${dir}/

mkdir -p ${dir}/tests
  
for ff in \
    00-README Makefile GENERIC-PROGS.make ; \
  do \
    require "${dir}/${ff}"
done

for prog in bxor bmix ; do 
  cp -avu ${prog}/*.c ${dir}/
  mkdir -p ${dir}/tests/${prog}
  rm -rf ${dir}/tests/${prog}/out-check
  cp -avu ${prog}/tests/{*.txt,out} ${dir}/tests/${prog}/.
  mv -vi ${dir}/tests/${prog}/out{,-check}
  for ff in \
      Makefile ; \
    do
      require "${dir}/tests/${prog}/${ff}"
  done
done
