#usr/bin/bash

nCores=4

###################################
# Configuration
###################################
root_dir=`pwd`
template_dir=$root_dir/template
input_template_dir=$template_dir/test_inputs

shebang="#!/usr/bin/bash"
ownership=tkamiya.csrv


###################################
# Working parameters
###################################
hostname=`hostname`
#date=`date "+%Y%m%d-%H%M%S"`
date=`date "+%Y%m%d"`
work_dir="$root_dir/${hostname}_$date"
md_path="$work_dir/condition.md"
vasp_path=`which vasp_std`
vasp_dir=$(dirname "$vasp_path")
vasp_command="mpirun -np $nCores '$vasp_path' | tee vasp.log"
makefiles="$vasp_dir"/makefile*
run_sh_path="$work_dir"/run.sh


###################################
# Running initialization
###################################
echo
echo root_dir          : $root_dir
echo template_dir      : $template_dir
echo input_template_dir: $input_template_dir
echo 
echo hostname: $hostname
echo date: $date
echo work_dir: $work_dir
echo vasp_path: "$vasp_path"
echo vasp_dir: "vasp_dir"
echo run_sh_path: "$run_sh_path"


echo
echo Executing [mkdir "$work_dir"]...
mkdir "$work_dir"

echo
echo Executing [cp -r "$input_template_dir"/* "$work_dir"/]...
cp -r "$input_template_dir"/* "$work_dir"/

echo
echo copy makefiles [$makefiles]
cp $makefiles "$work_dir"

echo
echo remove [$md_path]
rm "$md_path" 2> /dev/null

echo "  adding configration info"
echo "# Configuration" >> "$md_path"
echo "hostname: $hostname" >> "$md_path"
echo "date: `date`" >> "$md_path"
echo "work_dir: $work_dir" >> "$md_path"
echo "vasp_path: $vasp_path" >> "$md_path"
echo "vasp_dir: $vasp_dir" >> "$md_path"

echo "  adding variables"
echo "" >> "$md_path"
echo "#Environment" >> "$md_path"
env >> "$md_path"

echo
echo Creating [$run_sh_path]...
rm "$run_sh_path" 2> /dev/null
cat <<EOF > "$run_sh_path"
$shebang

echo
echo Searching INCAR files...

incar_dirs=\$(find "$work_dir" -type f -name "INCAR" -exec dirname {} \; | sort -u)
for parent_dir in \$incar_dirs; do
    echo "  INCAR is found in [\$parent_dir]"
    echo "  Executing [$vasp_command]..."
    cd "\$parent_dir"
    $vasp_command

    echo "cd to root_dir [$work_dir]"
    cd "$work_dir"
done
EOF

chmod +x "$run_sh_path"
echo 
echo "Run test script [$run_sh_path] has been created."


###################################
# Termination process
###################################
chown $ownership "$work_dir"
chown -R $ownership "$work_dir"/*
chmod 770 "$work_dir"
chmod -R 770 "$work_dir"/*

echo
