projects:projects
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| projects:projects [2025/03/22 19:12] – создано - внешнее изменение 127.0.0.1 | projects:projects [2025/03/23 20:46] (текущий) – | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ===== Проекты ===== | + | ====== Проекты |
| + | ===== Донастройки | ||
| Linux | Linux | ||
| - | |||
| - | Скрипты далее перебирают все скрипты '' | ||
| - | и отбирают те в которых есть ''# | ||
| - | |||
| - | <code bash> | ||
| - | #!/bin/bash | ||
| - | # ==AUTOEXEC== | ||
| - | # === Название программы === | ||
| - | # * Строка для основного описания | ||
| - | # * Строки для развернутого описания | ||
| - | # * Строки для развернутого описания | ||
| - | # | ||
| - | </ | ||
| - | |||
| - | признаком окончания описания является первая строка в которой после ''#'' | ||
| - | ==== Лаунчер скриптов (средствами bash) ==== | ||
| - | |||
| - | ++++ Скрипт для поиска и запуска скрптов из подкаталогов при помощи утилиты bash (нажмите чтобы раскрыть)| | ||
| - | <file bash launcher.sh> | ||
| - | #!/bin/bash | ||
| - | export LANG=en_US.UTF-8 | ||
| - | export LC_ALL=en_US.UTF-8 | ||
| - | |||
| - | # --- Конфигурация --- | ||
| - | INCLUDE_MARKER="# | ||
| - | ROOT_DIR=" | ||
| - | TMP_LIST="/ | ||
| - | |||
| - | # --- Поиск подходящих скриптов --- | ||
| - | > " | ||
| - | find " | ||
| - | if grep -q " | ||
| - | TITLE_TEXT="" | ||
| - | SHORT_TEXT="" | ||
| - | while IFS= read -r line; do | ||
| - | [[ -z " | ||
| - | if [[ " | ||
| - | CLEANED_LINE=" | ||
| - | if [[ " | ||
| - | TITLE_TEXT=" | ||
| - | elif [[ " | ||
| - | SHORT_TEXT=" | ||
| - | break | ||
| - | fi | ||
| - | fi | ||
| - | done < <(tail -n +2 <(grep -A30 " | ||
| - | if [ -n " | ||
| - | SHORT_DESC=" | ||
| - | else | ||
| - | SHORT_DESC=" | ||
| - | fi | ||
| - | echo -e " | ||
| - | fi | ||
| - | done | ||
| - | |||
| - | if [ ! -s " | ||
| - | echo "❌ Подходящих скриптов не найдено. Убедитесь, | ||
| - | exit 1 | ||
| - | fi | ||
| - | |||
| - | # --- Отображение меню --- | ||
| - | PS3=" | ||
| - | echo "📜 Найденные скрипты:" | ||
| - | echo " 0) ❌ Выход" | ||
| - | echo | ||
| - | mapfile -t ENTRIES < <(cut -d' | ||
| - | ENTRIES+=(" | ||
| - | select ENTRY in " | ||
| - | if [[ " | ||
| - | echo "👋 До свидания!"; | ||
| - | fi | ||
| - | [ -z " | ||
| - | SELECTED=$(grep -F " | ||
| - | break | ||
| - | done | ||
| - | |||
| - | # --- Показ подробного описания --- | ||
| - | echo | ||
| - | echo "📂 Скрипт: | ||
| - | echo "🔍 Подробное описание:" | ||
| - | DESC=() | ||
| - | TITLE="" | ||
| - | while IFS= read -r line; do | ||
| - | [[ -z " | ||
| - | if [[ " | ||
| - | CLEANED_LINE=" | ||
| - | if [[ " | ||
| - | TITLE=" | ||
| - | else | ||
| - | DESC+=(" | ||
| - | fi | ||
| - | else | ||
| - | break | ||
| - | fi | ||
| - | done < <(grep -A20 " | ||
| - | |||
| - | if [ -n " | ||
| - | echo -e " | ||
| - | fi | ||
| - | for line in " | ||
| - | echo " | ||
| - | done | ||
| - | echo | ||
| - | |||
| - | # --- Выбор действия --- | ||
| - | PS3=" | ||
| - | echo " 0) ❌ Выход" | ||
| - | select ACTION in " | ||
| - | if [[ " | ||
| - | echo "👋 До свидания!"; | ||
| - | fi | ||
| - | case $REPLY in | ||
| - | 1) echo " | ||
| - | 2) | ||
| - | echo " | ||
| - | read confirm | ||
| - | if [[ " | ||
| - | echo "🚀 Запуск..." | ||
| - | bash " | ||
| - | else | ||
| - | echo "❎ Отмена." | ||
| - | fi | ||
| - | break;; | ||
| - | 3) echo "👋 До свидания!"; | ||
| - | *) echo "❌ Неверный выбор";; | ||
| - | esac | ||
| - | done | ||
| - | |||
| - | </ | ||
| - | |||
| - | Более наглядный интерфейс через скрипт далее | ||
| - | требуется установка fzf (предложит установить при запуске если еще не установлен) | ||
| - | Если откажетесь при установке, | ||
| - | |||
| - | ==== Лаунчер скриптов (fzf) ==== | ||
| - | ++++Скрипт для поиска и запуска скрптов из подкаталогов при помощи утилиты fzf (нажмите чтобы раскрыть)| | ||
| - | <file bash launcher_fzf.sh> | ||
| - | #!/bin/bash | ||
| - | export LANG=en_US.UTF-8 | ||
| - | export LC_ALL=en_US.UTF-8 | ||
| - | |||
| - | # Проверка наличия fzf | ||
| - | if ! command -v fzf &>/ | ||
| - | echo "📦 Утилита fzf не найдена. Установить её сейчас? | ||
| - | read -r confirm | ||
| - | if [[ " | ||
| - | sudo apt update && sudo apt install -y fzf | ||
| - | else | ||
| - | echo " | ||
| - | bash ./ | ||
| - | exit 0 | ||
| - | fi | ||
| - | fi | ||
| - | |||
| - | # Конфигурация | ||
| - | INCLUDE_MARKER="# | ||
| - | ROOT_DIR=" | ||
| - | TMP_LIST="/ | ||
| - | |||
| - | > " | ||
| - | |||
| - | # Сбор скриптов с заголовком и кратким описанием | ||
| - | find " | ||
| - | if grep -q " | ||
| - | TITLE="" | ||
| - | SHORT="" | ||
| - | while IFS= read -r line; do | ||
| - | [[ -z " | ||
| - | if [[ " | ||
| - | CLEANED=" | ||
| - | if [[ " | ||
| - | TITLE=" | ||
| - | elif [[ " | ||
| - | SHORT=" | ||
| - | fi | ||
| - | fi | ||
| - | done < <(tail -n +2 <(grep -A30 " | ||
| - | |||
| - | DISPLAY_LINE=" | ||
| - | echo -e " | ||
| - | fi | ||
| - | |||
| - | done | ||
| - | |||
| - | if [ ! -s " | ||
| - | echo "❌ Не найдено подходящих скриптов." | ||
| - | exit 1 | ||
| - | fi | ||
| - | |||
| - | # Выбор через fzf с превью полного описания | ||
| - | SELECTED_LINE=$(cat " | ||
| - | fzf --prompt=" | ||
| - | --preview=' | ||
| - | [ -f " | ||
| - | --preview-window=right: | ||
| - | |||
| - | if [ -z " | ||
| - | echo "❎ Отмена пользователем." | ||
| - | exit 0 | ||
| - | fi | ||
| - | |||
| - | SELECTED_FILE=$(echo " | ||
| - | |||
| - | # Запуск с подтверждением | ||
| - | echo " | ||
| - | echo "📂 Файл: $SELECTED_FILE" | ||
| - | echo " | ||
| - | read -r confirm | ||
| - | if [[ " | ||
| - | echo "🚀 Запуск..." | ||
| - | bash " | ||
| - | else | ||
| - | echo "❎ Отмена." | ||
| - | fi | ||
| - | |||
| - | rm -f " | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
projects/projects.1742659957.txt.gz · Последнее изменение: — 127.0.0.1
