SHA256
40 lines
1.2 KiB
Bash
Executable File
40 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
OUTFILE="all_files.txt"
|
|
|
|
# === Список файлов (ТОЛЬКО имена без расширений) ===
|
|
# пример: Main значит Main.java, Utils значит Utils.java
|
|
NAMES=(
|
|
"IT_04_UserParams_NoAuth"
|
|
"AddBlockSender"
|
|
"ChainState"
|
|
"JsonBuilders"
|
|
)
|
|
|
|
# очищаем или создаём файл
|
|
: > "$OUTFILE"
|
|
|
|
# Быстрый фильтр: сделаем хеш-таблицу из имён (ассоц. массив)
|
|
declare -A WANT=()
|
|
for name in "${NAMES[@]}"; do
|
|
WANT["$name"]=1
|
|
done
|
|
|
|
# собрать только нужные *.java по базовому имени
|
|
find . -type f -name "*.java" | sort | while read -r f; do
|
|
base="$(basename "$f" .java)"
|
|
if [[ -n "${WANT[$base]+x}" ]]; then
|
|
cat "$f" >> "$OUTFILE"
|
|
echo >> "$OUTFILE" # пустая строка-разделитель
|
|
fi
|
|
done
|
|
|
|
# скопировать весь файл в буфер обмена (Wayland)
|
|
wl-copy < "$OUTFILE"
|
|
|
|
echo "Готово!"
|
|
echo "Выбрано имён: ${#NAMES[@]}"
|
|
echo "Все нужные .java файлы собраны в $OUTFILE"
|
|
echo "Содержимое скопировано в буфер обмена (Wayland)"
|