aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Stepanov Aleksey <blueingreen@bluig.xyz>2025-08-14 15:12:41 +0500
committerLibravatar Stepanov Aleksey <blueingreen@bluig.xyz>2025-08-14 15:12:41 +0500
commit244dddffbe128dfa5a4645011a9538b6fedeba90 (patch)
tree64611871eb860fc29dbb5f9118d63a172d3e4291
parent01ac24b461b0d196efe3fc6d3379050bdee3a52a (diff)
add menu.shHEADmenu-feat
-rwxr-xr-xmenu.sh54
1 files changed, 54 insertions, 0 deletions
diff --git a/menu.sh b/menu.sh
new file mode 100755
index 0000000..d0f90cd
--- /dev/null
+++ b/menu.sh
@@ -0,0 +1,54 @@
+#!/usr/bin/env bash
+
+source "./lib/environment.sh"
+
+#****h* archisofiles/menu.sh
+# NAME
+#
+# menu.sh - меню для выбора скрипта из BIN_DIR.
+#
+# EXAMPLE
+#
+# chmod +x ./menu.sh
+# ./menu.sh
+#******
+
+#****D* archisofiles/bin
+# NAME
+#
+# bin - папка с основными скриптами.
+#******
+
+#****D* archisofiles/lib
+# NAME
+#
+# lib - папка с вспомогательными скриптами.
+#******
+
+declare -a options
+
+for script in "$BIN_DIR"/*; do
+ if [[ -f "$script" && -x "$script" ]]; then
+ options+=("$(basename "$script")")
+ fi
+done
+options+=("Выход")
+
+PS3="Выбери действие (введи номер): "
+
+echo "Доступные скрипты в $BIN_DIR:"
+select action in "${options[@]}"; do
+ case "$action" in
+ "Выход")
+ echo "Выход."
+ break
+ ;;
+ "")
+ echo "Неверный выбор. Попробуй ещё раз."
+ ;;
+ *)
+ echo "Запускаю \"$action\"..."
+ "$BIN_DIR/$action"
+ ;;
+ esac
+done