summaryrefslogtreecommitdiff
path: root/core/modules/wait.sh
diff options
context:
space:
mode:
authorluisgulo <luisgulo@gmail.com>2025-10-24 18:01:10 +0200
committerluisgulo <luisgulo@gmail.com>2025-10-24 18:01:10 +0200
commit533e79ba959143f0459431a486bfb85c56c72ddc (patch)
tree91974de1bbbdc4c51c76ed591fc5c6e02a3342b6 /core/modules/wait.sh
parent45019c81cfd0fc1d18dce18cdfd5f127c6d61073 (diff)
Releasing code version 1.8.0
Diffstat (limited to 'core/modules/wait.sh')
-rw-r--r--core/modules/wait.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/core/modules/wait.sh b/core/modules/wait.sh
new file mode 100644
index 0000000..409dfbe
--- /dev/null
+++ b/core/modules/wait.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/env bash
+# Module: wait
+# Description: Pausa la ejecución durante un número de segundos (soporta decimales)
+# Author: Luis GuLo
+# Version: 1.2.0
+# Dependencies: sleep
+
+wait_task() {
+ local host="$1"; shift
+ declare -A args; for arg in "$@"; do key="${arg%%=*}"; value="${arg#*=}"; args["$key"]="$value"; done
+
+ local seconds="${args[seconds]:-1}"
+
+ # Cargar traducciones
+ local lang="${shflow_vars[language]:-es}"
+ local trfile="$(dirname "${BASH_SOURCE[0]}")/wait.tr.${lang}"
+ declare -A tr
+ if [[ -f "$trfile" ]]; then
+ while IFS='=' read -r key val; do tr["$key"]="$val"; done < "$trfile"
+ fi
+
+ if ! [[ "$seconds" =~ ^[0-9]+([.][0-9]+)?$ ]]; then
+ echo "${tr[invalid]:-❌ [wait] El parámetro 'seconds' debe ser un número válido (entero o decimal)}"
+ return 1
+ fi
+
+ echo "$(render_msg "${tr[start]}" "seconds=$seconds")"
+ sleep "$seconds"
+ echo "${tr[done]:-✅ [wait] Pausa completada}"
+}
+
+check_dependencies_wait() {
+ command -v sleep &>/dev/null || {
+ echo "${tr[missing_deps]:-❌ [wait] El comando 'sleep' no está disponible}"
+ return 1
+ }
+ echo "${tr[deps_ok]:-✅ [wait] Dependencias OK}"
+ return 0
+}