#!/usr/bin/env bash

set -ex

caravel_dir="${PWD}/caravel"
# blocks_verilog=${caravel_dir}/verilog/gl/*
# blocks_name=()
# for block in $blocks_verilog
# do
#     block_basename=$(basename $block)
#     block_name=${block_basename%.*}
#     blocks_name+=($block_name)
# done

torture_tests_blocks="./torture_tests/*"
torture_tests_done="./torture_tests.done/*"
torture_tests_all="$torture_tests_blocks $torture_tests_done"
blocks=()
for block in $torture_tests_all
do
    block_basename=$(basename $block)
    block_name=${block_basename%.*}
    blocks+=($block_name)
done
echo ${blocks[@]}

caravel_mpw4="${PWD}/caravel"
litex_mpw4="${PWD}/caravel_mgmt_soc_litex"
new_dir="torture_tests"
mkdir -p $new_dir
for block in ${blocks[@]}
do
    mkdir -p $new_dir/$block/verilog
    mkdir -p $new_dir/$block/gds
    cp -puv $caravel_mpw4/verilog/gl/$block.v $new_dir/$block/verilog/ \
    || cp -puv $litex_mpw4/verilog/gl/$block.v $new_dir/$block/verilog/
    cp -puv $caravel_mpw4/gds/$block.gds $new_dir/$block/gds/ \
    || cp -puv $litex_mpw4/gds/$block.gds $new_dir/$block/gds/
done
# for block in ${torture_tests_blocks}
# do
#     echo $block
# done
