# 查找输入文件目录的路径,将查找到的目录拷贝到新创建的目录下
#!/bin/bash
# 定义全局变量
NUM_OF_TEST_CASES=10
BASE_DIR="../"
TEST_DIR="$BASE_DIR/testCases"
TEST_SOURCE_DIR="sourceProject"
# 查找需要执行的源文件
function find_dir() {
local search_dir=$1
local current_dir=$PWD
while [[ $current_dir != "/" ]]; do
if [[ -d "${current_dir}/${search_dir}" ]]; then
echo "${current_dir}/${search_dir}"
return
fi
current_dir=$(dirname "$current_dir")
done
echo "failed"
return -1
}
# 创建测试用例执行目录
function create_test_dir() {
local num=$1
if [ -d "$TEST_DIR" ]; then
rm -rf "$TEST_DIR"
fi
mkdir "$TEST_DIR"
for i in $(seq 1 $num); do
mkdir "$TEST_DIR/case$i"
# touch "$TEST_DIR/case$i/case_${i}_log.txt"
done
}
# 复制文件
function CopyTestCases() {
local CASE_NUM="$1"
local SOURCE="$2"
local DEST_DIR="$3"
if ! [[ -d "$SOURCE" ]]; then
echo "Error: '$SOURCE' is not a directory."
exit 1
fi
create_test_dir "$CASE_NUM"
for dir in "$DEST_DIR"/case*; do
if [[ -d "$dir" ]]; then
cp -r "$SOURCE" "$dir"
echo "Copied '$SOURCE' to '$dir'"
fi
done
}
# 拷贝测试用例
function move_file_to_test_case() {
local SEARCH_DIR="$1"
if [[ -z "$SEARCH_DIR" ]]; then
echo "Please provide a directory name to search for"
exit 1
fi
local SOURCE=$(find_dir "$SEARCH_DIR")
if [[ "$SOURCE" == "failed" ]]; then
echo "Error: Failed to find directory '$SEARCH_DIR'."
else
if ! [[ -d "$SOURCE" ]]; then
echo "Error: '$SOURCE' is not a directory."
exit 1
fi
CopyTestCases $NUM_OF_TEST_CASES "$SOURCE" "$TEST_DIR"
fi
}
function main()
{
NUM_OF_TEST_CASES=$1
move_file_to_test_case $2
}
main $1 "$TEST_SOURCE_DIR"