aboutsummaryrefslogtreecommitdiff
path: root/menu.sh
diff options
context:
space:
mode:
Diffstat (limited to 'menu.sh')
-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