NewFileEncoding
This commit is contained in:
parent
927dc573d4
commit
99f02686be
54
launcher.sh
54
launcher.sh
@ -1,11 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# LAUNCHER.SH - Обработка файлов для Node.js (Linux)
|
# LAUNCHER.SH - Обработка файлов для Node.js (Linux)
|
||||||
# Использует: Node.js + strip-comments для безопасной очистки
|
# Использует: Node.js + strip-comments
|
||||||
# Поддерживает: .js, .css, .ejs
|
# Поддерживает: .js, .css, .ejs
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|
||||||
# --- Пути ---
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
DEV_DIR="$SCRIPT_DIR/!DEV"
|
DEV_DIR="$SCRIPT_DIR/!DEV"
|
||||||
INPUT_DIR="$DEV_DIR/input"
|
INPUT_DIR="$DEV_DIR/input"
|
||||||
@ -13,78 +12,56 @@ OUTPUT_DIR="$DEV_DIR/output"
|
|||||||
COMBINED_FILE="$OUTPUT_DIR/Combined_All_Files.txt"
|
COMBINED_FILE="$OUTPUT_DIR/Combined_All_Files.txt"
|
||||||
CLEANER_SCRIPT="$SCRIPT_DIR/cleaner.js"
|
CLEANER_SCRIPT="$SCRIPT_DIR/cleaner.js"
|
||||||
|
|
||||||
# --- Настройки ---
|
|
||||||
REMOVE_COMMENTS=true
|
REMOVE_COMMENTS=true
|
||||||
SUPPORTED_EXTS=("js" "css" "ejs")
|
SUPPORTED_EXTS=("js" "css" "ejs")
|
||||||
|
|
||||||
# --- Цвета ---
|
# Цвета
|
||||||
C_CYAN='\033[0;36m'; C_YELLOW='\033[0;33m'; C_GREEN='\033[0;32m'
|
C_CYAN='\033[0;36m'; C_YELLOW='\033[0;33m'; C_GREEN='\033[0;32m'
|
||||||
C_RED='\033[0;31m'; C_WHITE='\033[0;37m'; C_GRAY='\033[0;90m'
|
C_RED='\033[0;31m'; C_WHITE='\033[0;37m'; C_GRAY='\033[0;90m'
|
||||||
C_MAGENTA='\033[0;35m'; C_RESET='\033[0m'
|
C_MAGENTA='\033[0;35m'; C_RESET='\033[0m'
|
||||||
|
|
||||||
# --- Проверка зависимостей ---
|
|
||||||
check_deps() {
|
check_deps() {
|
||||||
if ! command -v node &>/dev/null; then
|
command -v node &>/dev/null || { echo -e "${C_RED}[ERR] Node.js не установлен!${C_RESET}"; return 1; }
|
||||||
echo -e "${C_RED}[ERR] Node.js не установлен!${C_RESET}"; return 1
|
[[ -f "$CLEANER_SCRIPT" ]] || { echo -e "${C_RED}[ERR] Не найден: cleaner.js${C_RESET}"; return 1; }
|
||||||
fi
|
|
||||||
if [[ ! -f "$CLEANER_SCRIPT" ]]; then
|
|
||||||
echo -e "${C_RED}[ERR] Не найден: cleaner.js${C_RESET}"; return 1
|
|
||||||
fi
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# --- Создание папок ---
|
|
||||||
setup_folders() {
|
setup_folders() {
|
||||||
if [[ ! -d "$DEV_DIR" ]]; then
|
[[ ! -d "$DEV_DIR" ]] && mkdir -p "$INPUT_DIR" "$OUTPUT_DIR" && echo -e "${C_GREEN}[OK] Папка !DEV создана${C_RESET}"
|
||||||
mkdir -p "$INPUT_DIR" "$OUTPUT_DIR"
|
[[ ! -d "$INPUT_DIR" ]] && mkdir -p "$INPUT_DIR"
|
||||||
echo -e "${C_GREEN}[OK] Папка !DEV создана${C_RESET}"
|
[[ ! -d "$OUTPUT_DIR" ]] && mkdir -p "$OUTPUT_DIR"
|
||||||
else
|
|
||||||
[[ ! -d "$INPUT_DIR" ]] && mkdir -p "$INPUT_DIR"
|
|
||||||
[[ ! -d "$OUTPUT_DIR" ]] && mkdir -p "$OUTPUT_DIR"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# --- Очистка комментариев ---
|
|
||||||
clean_all_comments() {
|
clean_all_comments() {
|
||||||
echo -e "${C_CYAN}=== ОЧИСТКА КОММЕНТАРИЕВ (.js/.css/.ejs) ===${C_RESET}"
|
echo -e "${C_CYAN}=== ОЧИСТКА КОММЕНТАРИЕВ (.js/.css/.ejs) ===${C_RESET}"
|
||||||
echo -e "${C_GRAY}Режим: $([ "$REMOVE_COMMENTS" = true ] && echo "ВКЛ" || echo "ВЫКЛ")${C_RESET}"
|
echo -e "${C_GRAY}Режим: $([ "$REMOVE_COMMENTS" = true ] && echo "ВКЛ" || echo "ВЫКЛ")${C_RESET}"
|
||||||
|
|
||||||
[[ "$REMOVE_COMMENTS" = false ]] && { echo -e "${C_YELLOW}Очистка отключена${C_RESET}\n"; return 0; }
|
[[ "$REMOVE_COMMENTS" = false ]] && { echo -e "${C_YELLOW}Очистка отключена${C_RESET}\n"; return 0; }
|
||||||
check_deps || return 1
|
check_deps || return 1
|
||||||
[[ ! -d "$INPUT_DIR" ]] && { echo -e "${C_RED}[ERR] Папка не найдена${C_RESET}"; return 1; }
|
[[ ! -d "$INPUT_DIR" ]] && { echo -e "${C_RED}[ERR] Папка не найдена${C_RESET}"; return 1; }
|
||||||
|
|
||||||
node "$CLEANER_SCRIPT" dir "$INPUT_DIR"
|
node "$CLEANER_SCRIPT" dir "$INPUT_DIR"
|
||||||
echo -e "${C_GREEN}✅ Очистка завершена${C_RESET}\n"
|
echo -e "${C_GREEN}[OK] Очистка завершена${C_RESET}\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
# --- Конвертация в .txt ---
|
|
||||||
convert_to_txt() {
|
convert_to_txt() {
|
||||||
echo -e "${C_CYAN}=== КОНВЕРТАЦИЯ В .TXT ===${C_RESET}\n"
|
echo -e "${C_CYAN}=== КОНВЕРТАЦИЯ В .TXT ===${C_RESET}\n"
|
||||||
[[ ! -d "$INPUT_DIR" ]] && { echo -e "${C_RED}[ERR] Папка не найдена${C_RESET}"; return 1; }
|
[[ ! -d "$INPUT_DIR" ]] && { echo -e "${C_RED}[ERR] Папка не найдена${C_RESET}"; return 1; }
|
||||||
|
|
||||||
local count=0
|
local count=0
|
||||||
while IFS= read -r -d '' file; do
|
while IFS= read -r -d '' file; do
|
||||||
ext="${file##*.}"
|
ext="${file##*.}"
|
||||||
if [[ " ${SUPPORTED_EXTS[*]} " =~ " $ext " ]] && [[ "$ext" != "txt" ]]; then
|
if [[ " ${SUPPORTED_EXTS[*]} " =~ " $ext " ]] && [[ "$ext" != "txt" ]]; then
|
||||||
newname="${file%.*}.txt"
|
mv "$file" "${file%.*}.txt" && { echo -e "${C_GREEN}[OK] $(basename "$file")${C_RESET}"; ((count++)); }
|
||||||
mv "$file" "$newname" && { echo -e "${C_GREEN}[OK] $(basename "$file")${C_RESET}"; ((count++)); }
|
|
||||||
fi
|
fi
|
||||||
done < <(find "$INPUT_DIR" -type f -print0 2>/dev/null)
|
done < <(find "$INPUT_DIR" -type f -print0 2>/dev/null)
|
||||||
|
|
||||||
echo -e "${C_WHITE}Конвертировано: $count${C_RESET}\n"
|
echo -e "${C_WHITE}Конвертировано: $count${C_RESET}\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
# --- Объединение файлов ---
|
|
||||||
combine_files() {
|
combine_files() {
|
||||||
echo -e "${C_CYAN}=== ОБЪЕДИНЕНИЕ ФАЙЛОВ ===${C_RESET}\n"
|
echo -e "${C_CYAN}=== ОБЪЕДИНЕНИЕ ФАЙЛОВ ===${C_RESET}\n"
|
||||||
[[ ! -d "$INPUT_DIR" ]] && { echo -e "${C_RED}[ERR] Папка не найдена${C_RESET}"; return 1; }
|
[[ ! -d "$INPUT_DIR" ]] && { echo -e "${C_RED}[ERR] Папка не найдена${C_RESET}"; return 1; }
|
||||||
|
|
||||||
mapfile -t txt_files < <(find "$INPUT_DIR" -type f -name "*.txt" 2>/dev/null | sort)
|
mapfile -t txt_files < <(find "$INPUT_DIR" -type f -name "*.txt" 2>/dev/null | sort)
|
||||||
local file_count=${#txt_files[@]}
|
local file_count=${#txt_files[@]}
|
||||||
|
|
||||||
[[ $file_count -eq 0 ]] && { echo -e "${C_RED}[ERR] Нет .txt файлов${C_RESET}"; return 1; }
|
[[ $file_count -eq 0 ]] && { echo -e "${C_RED}[ERR] Нет .txt файлов${C_RESET}"; return 1; }
|
||||||
echo -e "${C_WHITE}Найдено: $file_count${C_RESET}\n"
|
echo -e "${C_WHITE}Найдено: $file_count${C_RESET}\n"
|
||||||
|
|
||||||
mkdir -p "$OUTPUT_DIR"
|
mkdir -p "$OUTPUT_DIR"
|
||||||
{
|
{
|
||||||
echo "ОБЪЕДИНЁННЫЙ ФАЙЛ (Node.js)"
|
echo "ОБЪЕДИНЁННЫЙ ФАЙЛ (Node.js)"
|
||||||
@ -94,7 +71,6 @@ combine_files() {
|
|||||||
echo "Комментарии: $([ "$REMOVE_COMMENTS" = true ] && echo "УДАЛЕНЫ" || echo "ОСТАВЛЕНЫ")"
|
echo "Комментарии: $([ "$REMOVE_COMMENTS" = true ] && echo "УДАЛЕНЫ" || echo "ОСТАВЛЕНЫ")"
|
||||||
echo ""
|
echo ""
|
||||||
} > "$COMBINED_FILE"
|
} > "$COMBINED_FILE"
|
||||||
|
|
||||||
for file in "${txt_files[@]}"; do
|
for file in "${txt_files[@]}"; do
|
||||||
echo "================================================================================" >> "$COMBINED_FILE"
|
echo "================================================================================" >> "$COMBINED_FILE"
|
||||||
echo "ФАЙЛ: $file" >> "$COMBINED_FILE"
|
echo "ФАЙЛ: $file" >> "$COMBINED_FILE"
|
||||||
@ -103,15 +79,10 @@ combine_files() {
|
|||||||
echo -e "\n" >> "$COMBINED_FILE"
|
echo -e "\n" >> "$COMBINED_FILE"
|
||||||
echo -e "${C_GREEN}[OK] $(basename "$file")${C_RESET}"
|
echo -e "${C_GREEN}[OK] $(basename "$file")${C_RESET}"
|
||||||
done
|
done
|
||||||
|
[[ -f "$COMBINED_FILE" ]] && { local size=$(du -h "$COMBINED_FILE" | cut -f1); echo -e "\n${C_GREEN}[OK] Создан: $COMBINED_FILE ($size)${C_RESET}"; }
|
||||||
if [[ -f "$COMBINED_FILE" ]]; then
|
|
||||||
local size=$(du -h "$COMBINED_FILE" | cut -f1)
|
|
||||||
echo -e "\n${C_GREEN}[OK] Создан: $COMBINED_FILE ($size)${C_RESET}"
|
|
||||||
fi
|
|
||||||
echo ""
|
echo ""
|
||||||
}
|
}
|
||||||
|
|
||||||
# --- Меню и утилиты ---
|
|
||||||
toggle_comments() {
|
toggle_comments() {
|
||||||
echo -e "${C_CYAN}=== НАСТРОЙКА ===${C_RESET}\n"
|
echo -e "${C_CYAN}=== НАСТРОЙКА ===${C_RESET}\n"
|
||||||
REMOVE_COMMENTS=$([ "$REMOVE_COMMENTS" = true ] && echo false || echo true)
|
REMOVE_COMMENTS=$([ "$REMOVE_COMMENTS" = true ] && echo false || echo true)
|
||||||
@ -160,7 +131,7 @@ show_menu() {
|
|||||||
echo -e "2. ${C_CYAN}[КОНВЕРТ] Конвертировать в .txt${C_RESET}"
|
echo -e "2. ${C_CYAN}[КОНВЕРТ] Конвертировать в .txt${C_RESET}"
|
||||||
echo -e "3. ${C_CYAN}[ОБЪЕДИН] Объединить .txt в один файл${C_RESET}"
|
echo -e "3. ${C_CYAN}[ОБЪЕДИН] Объединить .txt в один файл${C_RESET}"
|
||||||
echo -e "4. ${C_GREEN}[ВСЁ] Очистка → Конвертация → Объединение${C_RESET}"
|
echo -e "4. ${C_GREEN}[ВСЁ] Очистка → Конвертация → Объединение${C_RESET}"
|
||||||
echo -e "5. ${C_WHITE}[НАСТР] Переключить очистку$([ "$REMOVE_COMMENTS" = true ] && echo " [ВКЛ]" || echo " [ВЫКЛ]")${C_RESET}"
|
echo -e "5. ${C_WHITE}[НАСТР] Очистка$([ "$REMOVE_COMMENTS" = true ] && echo " [ВКЛ]" || echo " [ВЫКЛ]")${C_RESET}"
|
||||||
echo -e "6. ${C_MAGENTA}[ПАПКА] Открыть !DEV${C_RESET}"
|
echo -e "6. ${C_MAGENTA}[ПАПКА] Открыть !DEV${C_RESET}"
|
||||||
echo -e "7. ${C_WHITE}[ИНФО] Показать структуру${C_RESET}"
|
echo -e "7. ${C_WHITE}[ИНФО] Показать структуру${C_RESET}"
|
||||||
echo -e "8. ${C_RED}[СБРОС] Полная очистка${C_RESET}"
|
echo -e "8. ${C_RED}[СБРОС] Полная очистка${C_RESET}"
|
||||||
@ -169,11 +140,8 @@ show_menu() {
|
|||||||
|
|
||||||
wait_for_user() { echo ""; read -p "Нажмите Enter для возврата..." < /dev/tty; }
|
wait_for_user() { echo ""; read -p "Нажмите Enter для возврата..." < /dev/tty; }
|
||||||
|
|
||||||
# ==============================================================================
|
|
||||||
# === ЗАПУСК ===
|
# === ЗАПУСК ===
|
||||||
# ==============================================================================
|
|
||||||
setup_folders
|
setup_folders
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
show_header; show_menu
|
show_header; show_menu
|
||||||
read -p "Выберите (0-8): " choice
|
read -p "Выберите (0-8): " choice
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user