Add make_dist
This commit is contained in:
parent
d7ac3be857
commit
a5ffe19dd8
1 changed files with 57 additions and 0 deletions
57
scripts/make_dist.sh
Normal file
57
scripts/make_dist.sh
Normal file
|
@ -0,0 +1,57 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Проверка аргументов
|
||||
if [ "$#" -lt 2 ]; then
|
||||
echo "Использование: $0 <кол-во задач> <номера задач...>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
count=$1
|
||||
shift
|
||||
tasks=("$@")
|
||||
|
||||
if [ "${#tasks[@]}" -ne "$count" ]; then
|
||||
echo "Ошибка: количество задач не совпадает с указанным числом"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Папка назначения
|
||||
dest_dir="./dist/Krivoruchenko_SK"
|
||||
mkdir -p "$dest_dir" || { echo "Не удалось создать $dest_dir"; exit 1; }
|
||||
|
||||
# Для отката, если что-то пойдёт не так
|
||||
copied_files=()
|
||||
|
||||
cleanup_and_exit() {
|
||||
echo "Ошибка: $1"
|
||||
echo "Удаляю скопированные файлы..."
|
||||
for file in "${copied_files[@]}"; do
|
||||
rm -f "$file"
|
||||
done
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Проход по задачам
|
||||
for num in "${tasks[@]}"; do
|
||||
folder=$(printf "%02dEx" "$num")
|
||||
if [ ! -d "$folder" ]; then
|
||||
cleanup_and_exit "Папка $folder не найдена"
|
||||
fi
|
||||
|
||||
for file in main.c solve.c solve.h; do
|
||||
src="$folder/$file"
|
||||
if [ ! -f "$src" ]; then
|
||||
cleanup_and_exit "Файл $src не найден"
|
||||
fi
|
||||
|
||||
base=$(basename "$file" .c)
|
||||
ext="${file##*.}"
|
||||
dest_file="$dest_dir/${base}_${folder:0:2}.$ext"
|
||||
|
||||
cp "$src" "$dest_file" || cleanup_and_exit "Ошибка копирования $src"
|
||||
copied_files+=("$dest_file")
|
||||
done
|
||||
done
|
||||
|
||||
echo "Все файлы успешно скопированы в $dest_dir"
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue