SHiNE-server/src/main/запросы.sh
AidarKC 4c87207129 08 01 25
Помелоги поменял
2026-01-08 23:32:17 +03:00

77 lines
2.4 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
set -euo pipefail
# OUTFILE:
# - если пустая строка ("") -> в файл НЕ пишем, только в буфер
# - если не пустая -> пишем в файл + (если есть wl-copy) копируем в буфер
OUTFILE="all_files.txt"
# OUTFILE=""
# === НАСТРОЙКА: перечисляй тут пути (каталоги и/или конкретные файлы) ===
# - Если путь указывает на ФАЙЛ: берём его ВСЕГДА, даже если это не .java
# - Если путь указывает на КАТАЛОГ: рекурсивно берём только *.java внутри
# - Пустые строки игнорируются
TARGETS=(
#"./src/main/java"
# "./server"
# /home/ai/work/SHiNE/SHiNE-server/shine-server-blockchain
"/home/ai/work/SHiNE/SHiNE-server/shine-server-blockchain"
"/home/ai/work/SHiNE/SHiNE-server/shine-server-db"
)
RED=$'\033[0;31m'
RESET=$'\033[0m'
warn_red() {
echo "${RED}WARN:${RESET} $*" >&2
}
# временные файлы
TMP_LIST="$(mktemp)"
TMP_OUT="$(mktemp)"
trap 'rm -f "$TMP_LIST" "$TMP_OUT"' EXIT
# собрать пути
for path in "${TARGETS[@]}"; do
path="$(printf '%s' "$path" | sed -e 's/^[[:space:]]\+//' -e 's/[[:space:]]\+$//')"
[[ -z "$path" ]] && continue
if [[ -f "$path" ]]; then
printf '%s\n' "$path" >> "$TMP_LIST"
elif [[ -d "$path" ]]; then
find "$path" -type f -name "*.java" >> "$TMP_LIST"
else
warn_red "Не найдено (пропускаю): $path"
fi
done
# склеиваем в TMP_OUT
sort -u "$TMP_LIST" | while IFS= read -r f; do
if [[ ! -f "$f" ]]; then
warn_red "Файл исчез (пропускаю): $f"
continue
fi
cat "$f" >> "$TMP_OUT"
echo >> "$TMP_OUT"
done
# если OUTFILE не пуст — пишем файл
if [[ -n "${OUTFILE:-}" ]]; then
: > "$OUTFILE"
cat "$TMP_OUT" > "$OUTFILE"
fi
# копирование в буфер (Wayland), если доступно
if command -v wl-copy >/dev/null 2>&1; then
wl-copy < "$TMP_OUT"
else
warn_red "wl-copy не найден — в буфер не скопировано."
fi
echo "Готово!"
if [[ -n "${OUTFILE:-}" ]]; then
echo "Все файлы собраны в $OUTFILE"
else
echo "OUTFILE пуст — в файл не писали, только буфер (если wl-copy доступен)"
fi