aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hyperterm/core/status.sh21
-rw-r--r--hyperterm/hyperterm.sha51218
-rw-r--r--hyperterm/themes/default.sh14
-rw-r--r--hyperterm/themes/joy.sh15
-rw-r--r--hyperterm/themes/light_theme.sh15
-rw-r--r--hyperterm/themes/minterm.sh18
-rw-r--r--hyperterm/themes/pure.sh18
-rw-r--r--hyperterm/themes/simple.sh18
-rw-r--r--hyperterm/themes/special.sh21
-rw-r--r--hyperterm/tools/ssh-agent.sh177
10 files changed, 188 insertions, 147 deletions
diff --git a/hyperterm/core/status.sh b/hyperterm/core/status.sh
index d5f5dc5..c9b0b64 100644
--- a/hyperterm/core/status.sh
+++ b/hyperterm/core/status.sh
@@ -1,25 +1,14 @@
#!/bin/bash
# System Status
-function exitstatus(){
- local retval=$?
+function exitstatus() {
+ local retval=$1
unset status
-
- # Import colors
_colors_bash "$@"
case $retval in
- 0)
- status="[${retval}]"
- printf '%b%s' "${BOLD}${CYAN}" "${status}"
- ;;
- 1)
- status="[${retval}]"
- printf '%b%s' "${BOLD}${PURPLE}" "${status}"
- ;;
- *)
- status="[${retval}]"
- printf '%b%s' "${BOLD}${RED}" "${status}"
- ;;
+ 0) status="[${retval}]"; printf '%b%s' "${BOLD}${CYAN}" "${status}" ;;
+ 1) status="[${retval}]"; printf '%b%s' "${BOLD}${PURPLE}" "${status}" ;;
+ *) status="[${retval}]"; printf '%b%s' "${BOLD}${RED}" "${status}" ;;
esac
}
diff --git a/hyperterm/hyperterm.sha512 b/hyperterm/hyperterm.sha512
index 0eb3f7e..5733a0b 100644
--- a/hyperterm/hyperterm.sha512
+++ b/hyperterm/hyperterm.sha512
@@ -6,14 +6,14 @@ b760a908a3f6222b974abc1f7464bde0f5427f120f1e7ef1c6d97ae61769e552ef3b5cb88e193e95
f3e00b2aa8ab9f3ab44570adaa2520408ed66fd00f551654d60b64a4be3546ec781b7efa39bcd774937e654b6ffb4c7af3f21eeb36caf9c01f82f85cf28e2b4d ./core/languages.sh
fdc570118a65a2b00571fd374be1aa983d41e9722bee6e604e2b00fcd2e1931df4dfd8951f15a2402dfcb3cbc76a5fe8d9d564a83fec73595dcaae2e38ac338a ./core/autodep.sh
7447d3e167ab207d3ef4218e201a06bf5a3fc23281639f16f7f405f1d66b73923845d450fdb0a94672757866a9da0324f728564a1b61b2ed1678fe576eb565cf ./core/autocomplete.sh
-065cfa39f1b4312ed275ad1039827a24f703176c653a8d27303d145f9d389a60ec5b3a9eb167e060cc6fd093b9c03cfb1a8b70254d444fbc6e62e2297d88b310 ./core/status.sh
-c6c149704883ce5cbbd941019259effb105dd6910c98910782024311b3362df2e68d03c947908d40686c2620c1521aeee2ffb019a906ad367be1cc3d429ecd82 ./themes/minterm.sh
-0b6705dae598dff024fc10fd9c4710a298e7d2ab7b7f3895eb8654d1ad7236a0b0f72511f1db7df8155f32aa882ac2bf55a9d6a04c227ed6285b866ec3a29904 ./themes/simple.sh
-1d70b22277aa1d37e770f952411687c30d47da8caae278e431208671af239591d259258b4982ca9b61faf57f266958a002180496b0db036a94250604212aa1bb ./themes/pure.sh
-074e8549d638dee7470583c04ebbb7408181974806bd5e2cf5fc134ddee83c01040ed9d59a8aa00a87287b25df1c2e23edf3c063426952a8aeb56db8310ef8fd ./themes/joy.sh
-403fe028575baa22c39dd11ac56a246369b8e38524c216f6d564b59aa22c60a426941f755ad3adb75f212c9124350ce3aeb114ba365ded1ed33b62ac480a60aa ./themes/light_theme.sh
-7efe3770a629d6168b1c9007f420d2d657fa38fc1673dd5dc365dcf3c9d4c34456e346f9ed739c347133f93ad78cf88d0d54fe95523ce5d91a51cd49650d7525 ./themes/special.sh
-07bb7b6bd609e855d0a7c9e39a0ff2959851f559106e8f59816312f298b03e87f39e53430869ed61a1271e265e976ea6b56f7ccee46c4ec3c37b40f1fc11cfad ./themes/default.sh
+99f9e937e39495f60495bc89f055f29e1bee25911c9bea5c8b2a7c6a5bdc417502f17da8cb9e63ea957eea9337c6fe1c63c208a3ff3ed33ef2ca8c1dbe328599 ./core/status.sh
+65f850342f43bdfe68b2b0339a051a795c6640b4bd4f7c6b6b979ca214607f9a87d9cfdc6955785c5ca087d09294781ee8cb3a62dc0160cd8a105ff65cc82465 ./themes/minterm.sh
+c6467d21cc7fdf0c3da797be8521db96069361e5064ace5b1c3a509679e2adb6d57c5a865a158fa5dfec3dd94892fa47a3c1b7b985d7808af646118ffeceb771 ./themes/simple.sh
+19bf23dd3ca5967125dbd9d7cbb02312a6d230320869d0ebbb2dbd6994921cb02a627180d5ccaafb0e8e16baf25abcb29f5ba94a0b25bd376b6a963dda1a8d7a ./themes/pure.sh
+a845a8bbf6bad13bd3c6a40b27c65055a4f55c8f238e30e4bd9bc3ace16d15ae7ccdf51b38d9064f55d60fbd1e1166ae4918ab6ddd3a495b08366f2554dd94e6 ./themes/joy.sh
+af819a140b2a66de3bd53ec0911b1253f661aa2c0a84c4fed4608880ec467340c8076805bea622c82b9dfdbc3a70fa6f81559d39d42e7cb053fb8a71a462f3e0 ./themes/light_theme.sh
+e0805f47622d0e245333e933fcf767b88e8d2157e57f156f069b24dd13d220866908f7aabfb2592ca9b89dc3c490a4480bd7b19c76328d38f1a72db2f0fc19b6 ./themes/special.sh
+7d64675844172bb30235649848147f5b15b7b7575af1e7b33ce24d71e11f1b17c063151f43bc4f858fe7f770c292b11e9a6fb21fdf91b7e180336b1918746841 ./themes/default.sh
f760432c3d76befad30588299eb2d1412d77b22fd850ffbd840c72123885d4e916a7e0b16e7048c5dcd6e58fa3bc0807cda18ae64045a7495684ba37109e4b4a ./tools/compress.sh
1b9c148ab8577fe15b4d503ec480b36eeaea42bf7048e35a0866280ee87a6c8de31c54600a8e455147db987e7aa61c8aa585748a9945c0472992d28fdccb8c0f ./tools/export.sh
8606294d403c5fd9cd5c316401387b5aea79de1d193aa9f23210c94bf32ff83e8d9dc98466d017bc4d9d037cf548335fde1b2f2631e3597a87eec7ccb8e78d6c ./tools/network.sh
@@ -25,4 +25,4 @@ f760432c3d76befad30588299eb2d1412d77b22fd850ffbd840c72123885d4e916a7e0b16e7048c5
fab9d339a99c7d2e1809d1c44f533523c6bfcdcc8d63c62b335ce7d4c666c8bdd7ac319316bf71f043163a3a0184e25ecfe1ee32724627424d042a05fa80ce77 ./tools/vconverter.sh
ee1d6d1f9b010318985f7154c2a9173c8f2ab6b637cd3c8d2a9b403e83470e15a273dcff326a84f035660807d7cfcf04efe5abc0495e25ae7339b8807899cf0d ./tools/listuser.sh
243e3a076f1696bde1e464b479e221876177eb98c92415a09de8dc9e8d138e88e006eb9fa441ca1ab19d260cb3fd4de82dc54feae73453e229c3a8fdab3043f0 ./tools/virtualenv.sh
-1ba63accea347b96c30fcd4a2fa84c531836b082ed5ced035a8f30a0d738724f8f171ec85645779e682c8d0aa1d5f6c5b32e182454cdb8f0c85dde08a37a96ca ./tools/ssh-agent.sh
+2ac91f6a767fc8d2216f418e68877ca20c006ce7002a475d95b0ef78874f3983d1d6e940e3634cc059b43bd097f4f9685af148fd25f2cdda7aa20ce8fab2ea55 ./tools/ssh-agent.sh
diff --git a/hyperterm/themes/default.sh b/hyperterm/themes/default.sh
index 8d2f026..27512bd 100644
--- a/hyperterm/themes/default.sh
+++ b/hyperterm/themes/default.sh
@@ -1,11 +1,17 @@
#!/bin/bash
-# shellcheck disable=SC1117
+# shellcheck disable=SC1117,SC2034,SC2154
unset default
# Import colors
_colors_bash "$@"
+PROMPT_COMMAND='
+ last_status=$?
+ ps1_status="$(exitstatus "$last_status")"
+ ps1_git="$(__prompt_git)"
+'
+
default=("\n\
\[$RESET\]\
\[${BOLD}${YELLOW}\][ \u \
@@ -13,11 +19,9 @@ default=("\n\
\[${BOLD}${RED}\] \D{%I:%M%p} ]\n\
\[$RESET\]\
\[${BOLD}${WHITE}\][\$PWD]\[$RESET\] \
-\$(exitstatus)\[$RESET\]\
-\$(__prompt_git)\
+\${ps1_status}\[$RESET\]\
+\${ps1_git}\
\n\[${BOLD}${GREEN}\]$SYMBOL \[$RESET\]")
-export default
-
unset _psi
: "${_psi:=\[${BOLD}${CYAN}\]=>\[$RESET\] }"
diff --git a/hyperterm/themes/joy.sh b/hyperterm/themes/joy.sh
index 0f5e8ee..54e29f6 100644
--- a/hyperterm/themes/joy.sh
+++ b/hyperterm/themes/joy.sh
@@ -1,11 +1,18 @@
#!/bin/bash
+# shellcheck disable=SC2034,SC2154
unset joy
# Import colors
_colors_bash "$@"
-: "${joy:=\n\
+PROMPT_COMMAND='
+ last_status=$?
+ ps1_status="$(exitstatus "$last_status")"
+ ps1_git="$(__prompt_git)"
+'
+
+joy="\n\
\[${BOLD}${CYAN}\]\342\224\214\342\224\200[\
\[${BOLD}${YELLOW}\]\u\
\[${BOLD}${CYAN}\]@\
@@ -15,15 +22,15 @@ _colors_bash "$@"
\[${RESET}\]\w\
\[${BOLD}${CYAN}\]]\
\342\224\200\
-\$(exitstatus)\
+\${ps1_status}\
\[${BOLD}${CYAN}\]\
\342\224\200\
-\$(__prompt_git)\
+\${ps1_git}\
\[${BOLD}${CYAN}\]\342\224\200[\
\[${RESET}\]\t\
\[${BOLD}${CYAN}\]]\n\
\[${BOLD}${CYAN}\]\342\224\224\342\224\200\342\224\200\342\225\274\
-\[${BOLD}${GREEN}\] $SYMBOL \[$RESET\]}"
+\[${BOLD}${GREEN}\] $SYMBOL \[$RESET\]"
unset _psi
: "${_psi:=\[${BOLD}${CYAN}\]=>\[$RESET\] }"
diff --git a/hyperterm/themes/light_theme.sh b/hyperterm/themes/light_theme.sh
index c269aaa..5fadaa0 100644
--- a/hyperterm/themes/light_theme.sh
+++ b/hyperterm/themes/light_theme.sh
@@ -1,20 +1,27 @@
#!/bin/bash
+# shellcheck disable=SC2034,SC2154
unset light_theme
# Import colors
_colors_bash "$@"
-: "${light_theme:=\n\
+PROMPT_COMMAND='
+ last_status=$?
+ ps1_status="$(exitstatus "$last_status")"
+ ps1_git="$(__prompt_git)"
+'
+
+light_theme="\n\
\[$RESET\]\
\[${BOLD}${CYAN}\]┌─\[$RESET\]\
\[${BOLD}${YELLOW}\]\u\[$RESET\]\
\[${BOLD}${CYAN}\]@\[$RESET\]\
\[${BOLD}${GREY}\]\h\[$RESET\] \
-\$(exitstatus)\[$RESET\] \
+\${ps1_status}\[$RESET\] \
\[${BOLD}${WHITE}\][\$PWD]\
-\$(__prompt_git)\
-\n\[${BOLD}${CYAN}\]╰─➤\[${BOLD}${GREEN}\]$SYMBOL \[$RESET\]}"
+\${ps1_git}\
+\n\[${BOLD}${CYAN}\]╰─➤\[${BOLD}${GREEN}\]$SYMBOL \[$RESET\]"
unset _psi
: "${_psi:=\[${BOLD}${CYAN}\]=>\[$RESET\] }"
diff --git a/hyperterm/themes/minterm.sh b/hyperterm/themes/minterm.sh
index 139094a..07dfa04 100644
--- a/hyperterm/themes/minterm.sh
+++ b/hyperterm/themes/minterm.sh
@@ -1,21 +1,29 @@
#!/bin/bash
+# shellcheck disable=SC2034,SC2154
unset minterm
# Import colors
_colors_bash "$@"
-: "${minterm:=\n\
+PROMPT_COMMAND='
+ last_status=$?
+ ps1_status="$(exitstatus "$last_status")"
+ ps1_git="$(__prompt_git)"
+ ps1_time="$(printf "%b%s" "${BOLD}${GREY}" "$(date +%H:%M)")"
+'
+
+minterm="\n\
\[${BOLD}${CYAN}\]┌─\
\[${BOLD}${YELLOW}\]\u\
\[${BOLD}${CYAN}\]@\
\[${BOLD}${GREY}\]\h\[$RESET\] \
-\$(exitstatus)\[$RESET\] \
+\${ps1_status}\[$RESET\] \
\[${BOLD}${WHITE}\][\$PWD]\
-\$(__prompt_git)\n\
+\${ps1_git}\n\
\[${BOLD}${CYAN}\]╰─➤\[$RESET\] \
-\$( echo -n \"\[${BOLD}${GREY}\]\$(date +%H:%M)\" )\[$RESET\] \
-\[${BOLD}${GREEN}\]$SYMBOL \[$RESET\]}"
+\${ps1_time}\[$RESET\] \
+\[${BOLD}${GREEN}\]$SYMBOL \[$RESET\]"
unset _psi
: "${_psi:=\[${BOLD}${CYAN}\]=>\[$RESET\] }"
diff --git a/hyperterm/themes/pure.sh b/hyperterm/themes/pure.sh
index 62958de..ab8f1b4 100644
--- a/hyperterm/themes/pure.sh
+++ b/hyperterm/themes/pure.sh
@@ -1,19 +1,27 @@
#!/bin/bash
+# shellcheck disable=SC2034,SC2154
unset pure
# Import colors
_colors_bash "$@"
-: "${pure:=\
+PROMPT_COMMAND='
+ last_status=$?
+ ps1_status="$(exitstatus "$last_status")"
+ ps1_git="$(__prompt_git)"
+ ps1_time="$(printf "%b%s" "${BOLD}${GREY}" "$(date +%H:%M)")"
+'
+
+pure="\
\[${BOLD}${GREEN}\]\u\[$RESET\] \
\[${BOLD}${YELLOW}\][\
\[${BOLD}${RED}\]\w\
\[${BOLD}${YELLOW}\]]\[$RESET\] \
-\$(exitstatus)\[$RESET\] \
-\[${BOLD}${BLUE}\](\$(date +%H:%M:%S))\
-\$(__prompt_git)\
-\n\[${BOLD}${CYAN}\]$SYMBOL \[$RESET\]}"
+\${ps1_status}\[$RESET\] \
+\${ps1_time}\
+\${ps1_git}\
+\n\[${BOLD}${CYAN}\]$SYMBOL \[$RESET\]"
unset _psi
: "${_psi:=\[${BOLD}${CYAN}\]=>\[$RESET\] }"
diff --git a/hyperterm/themes/simple.sh b/hyperterm/themes/simple.sh
index afba275..e4902c2 100644
--- a/hyperterm/themes/simple.sh
+++ b/hyperterm/themes/simple.sh
@@ -1,4 +1,5 @@
#!/bin/bash
+# shellcheck disable=SC2034,SC2154
unset simple
@@ -9,15 +10,22 @@ __time_out_command() {
awk '{ print $1 }' /proc/loadavg
}
-: "${simple:=\n\
+PROMPT_COMMAND='
+ last_status=$?
+ ps1_status="$(exitstatus "$last_status")"
+ ps1_load="$(__time_out_command)"
+ ps1_git="$(__prompt_git)"
+'
+
+simple="\n\
\[${RESET}\]\
\[${BOLD}${GREY}\]\
-\$(exitstatus)\[$RESET\] \
+\${ps1_status}\[$RESET\] \
\[${BOLD}${GREY}\]\
-\$(__time_out_command)\[$RESET\] \
+\${ps1_load}\[$RESET\] \
\[${BOLD}${WHITE}\]\W\[$RESET\]\
-\$(__prompt_git)\n\
-\[${BOLD}${GREEN}\]$SYMBOL \[$RESET\]}"
+\${ps1_git}\n\
+\[${BOLD}${GREEN}\]$SYMBOL \[$RESET\]"
unset _psi
: "${_psi:=\[${BOLD}${CYAN}\]=>\[$RESET\] }"
diff --git a/hyperterm/themes/special.sh b/hyperterm/themes/special.sh
index fd58b1e..7ad71f8 100644
--- a/hyperterm/themes/special.sh
+++ b/hyperterm/themes/special.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# shellcheck disable=SC1117
+# shellcheck disable=SC1117,SC2034,SC2154
unset special
@@ -17,19 +17,24 @@ _prompt_local_name() {
esac
}
-special=("\n\
+PROMPT_COMMAND='
+ last_status=$?
+ ps1_status="$(exitstatus "$last_status")"
+ ps1_loc="$(_prompt_local_name)"
+ ps1_git="$(__prompt_git)"
+'
+
+special="\n\
\[$RESET\]\
-\[${BOLD}${YELLOW}\][$(_prompt_local_name)\
+\[${BOLD}${YELLOW}\][\${ps1_loc}\
\[$RESET\] \[${BOLD}${GREY}\]\w\
\[${BOLD}${YELLOW}\]]\[$RESET\] \
\[${BOLD}${CYAN}\]hist:\!\[$RESET\]\n\
\[${BOLD}${GREY}\]\
\D{%Y-%m-%d}@\D{%I:%M%p}\[$RESET\] \
-\$(exitstatus)\[$RESET\]\
-\$(__prompt_git)\n\
-\[${BOLD}${GREEN}\]$SYMBOL \[$RESET\]")
-
-export special
+\${ps1_status}\[$RESET\]\
+\${ps1_git}\n\
+\[${BOLD}${GREEN}\]$SYMBOL \[$RESET\]"
unset _psi
: "${_psi:=\[${BOLD}${CYAN}\]=>\[$RESET\] }"
diff --git a/hyperterm/tools/ssh-agent.sh b/hyperterm/tools/ssh-agent.sh
index 3db6418..8691742 100644
--- a/hyperterm/tools/ssh-agent.sh
+++ b/hyperterm/tools/ssh-agent.sh
@@ -1,68 +1,83 @@
#!/bin/bash
+# SPDX-License-Identifier: GPL-3.0-or-later
+# This script manages the SSH agent, allowing you to start, stop, and reload it.
+# Require script: core/lamguages.sh
+# Usage:
+# sagent_start - Start the SSH agent and add a private key.
+# sagent_stop - Stop the SSH agent.
+# sagent_reload - Reload the SSH agent and list added keys.
-#------------
-# SSH-AGENT
-#------------
function sshagent_start {
- local key_path="$HOME/.ssh/id_ed25519"
- local lifetime="5d"
-
- # Parse options
- while getopts "t:k:" opt; do
- case "$opt" in
- t) lifetime="$OPTARG" ;;
- k) key_path="$OPTARG" ;;
- *)
- echo "Usage: sagent_start [-t lifetime] [-k key_path]"
- return 1
- ;;
- esac
- done
+ local ssh_dir="$HOME/.ssh"
+ local default_lifetime="5d"
+ local key_path=""
+ local lifetime="$default_lifetime"
+ local seconds=0
+ local human_lifetime=""
+
+ msg "Buscando claves privadas en $ssh_dir..." "Looking for private keys in $ssh_dir..."
+ mapfile -t keys < <(find "$ssh_dir" -type f -not -name "*.pub" -exec grep -l "PRIVATE KEY" {} \;)
+
+ local key_count=${#keys[@]}
+ if [ "$key_count" -eq 0 ]; then
+ msg_err "No se encontraron claves privadas en $ssh_dir" "No private keys found in $ssh_dir"
+ return 1
+ elif [ "$key_count" -eq 1 ]; then
+ key_path="${keys[0]}"
+ msg "Una sola clave encontrada: $key_path" "Single key found: $key_path"
+ else
+ msg "Selecciona la clave que deseas agregar al agente SSH:" "Select the key you want to add to the SSH agent:"
+ select key in "${keys[@]}" "$(msg 'Cancelar' 'Cancel')"; do
+ if [[ "$REPLY" =~ ^[0-9]+$ ]]; then
+ if (( REPLY >= 1 && REPLY <= key_count )); then
+ key_path="$key"
+ break
+ elif (( REPLY == key_count + 1 )); then
+ msg "Operación cancelada." "Operation cancelled."
+ return 0
+ else
+ msg "Opción fuera de rango." "Option out of range."
+ fi
+ else
+ msg "Entrada no válida. Solo números." "Invalid input. Numbers only."
+ fi
+ done
+ fi
+
+ read -rp "$(msg "¿Tiempo de vida del agente? (Ej: 5m, 2h, 1d) [${default_lifetime}]: " \
+ "Agent lifetime? (e.g., 5m, 2h, 1d) [${default_lifetime}]: ")" user_input
+ lifetime="${user_input:-$default_lifetime}"
- # Convert lifetime to seconds
local num=${lifetime//[!0-9]/}
local unit=${lifetime//[0-9]/}
- local seconds=0
-
case "$unit" in
- s|"") seconds=$num ;; # default to seconds
- m) seconds=$((num * 60)) ;;
- h) seconds=$((num * 3600)) ;;
- d) seconds=$((num * 86400)) ;;
- *)
- echo "Invalid time unit. Use s, m, h, or d."
- return 1
- ;;
+ s|"") seconds=$num; human_lifetime="$(msg "$num segundo(s)" "$num second(s)")" ;;
+ m) seconds=$((num * 60)); human_lifetime="$(msg "$num minuto(s)" "$num minute(s)")" ;;
+ h) seconds=$((num * 3600)); human_lifetime="$(msg "$num hora(s)" "$num hour(s)")" ;;
+ d) seconds=$((num * 86400)); human_lifetime="$(msg "$num día(s)" "$num day(s)")" ;;
+ *) msg_err "Unidad de tiempo inválida. Usa s, m, h o d." "Invalid time unit. Use s, m, h or d."; return 1 ;;
esac
- # Clean previous ssh credentials
- (rm -rf /tmp/ssh-* > /dev/null)
-
+ rm -rf /tmp/ssh-* > /dev/null
SSH_ENV="$HOME/.ssh/environment"
- printf '\e[1;36m%s\e[m\n' "Initialising new SSH agent..."
- ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
- chmod 600 "${SSH_ENV}"
+ msg "Inicializando nuevo agente SSH..." "Initializing new SSH agent..."
+ ssh-agent | sed 's/^echo/#echo/' > "$SSH_ENV"
+ chmod 600 "$SSH_ENV"
# shellcheck source=/dev/null
- source "${SSH_ENV}" > /dev/null
+ source "$SSH_ENV" > /dev/null
- if [[ ! -f "$key_path" ]]; then
- printf '\e[1;31m%s\e[m\n' "SSH key not found at $key_path"
- return 1
- fi
-
- if ssh-add -t "$seconds" "$key_path" >/dev/null 2>&1 ; then
- printf '\e[1;36m%s\e[m\n' "SSH key added successfully: $key_path (lifetime: $lifetime = ${seconds}s)"
+ if ssh-add -t "$seconds" "$key_path" >/dev/null 2>&1; then
+ msg "Clave agregada correctamente: $key_path (vida: $human_lifetime)" \
+ "Key added successfully: $key_path (lifetime: $human_lifetime)"
else
- printf '\e[1;31m%s\e[m\n' "Failed to add SSH key"
+ msg_err "Error al agregar la clave." "Failed to add SSH key."
fi
}
function sshagent_stop {
-
- # clean previous ssh credentials
- (rm -rf /tmp/ssh-* > /dev/null)
-
+ rm -rf /tmp/ssh-* > /dev/null
ssh-agent -k > /dev/null
+ msg "Agente SSH detenido." "SSH agent stopped."
}
function sshagent_findsockets {
@@ -70,65 +85,57 @@ function sshagent_findsockets {
}
function sshagent_testsocket {
- if [ ! -x "$(command -v ssh-add)" ] ; then
- echo "ssh-add is not available; agent testing aborted"
+ if ! command -v ssh-add >/dev/null; then
+ msg_err "ssh-add no está disponible. Cancelando prueba de socket." \
+ "ssh-add is not available. Cancelling socket test."
return 1
fi
- if [ X"$1" != X ] ; then
- export SSH_AUTH_SOCK=$1
- fi
-
- if [ X"$SSH_AUTH_SOCK" = X ] ; then
- return 2
- fi
+ [ -n "$1" ] && export SSH_AUTH_SOCK=$1
+ [ -z "$SSH_AUTH_SOCK" ] && return 2
- if [ -S "$SSH_AUTH_SOCK" ] ; then
+ if [ -S "$SSH_AUTH_SOCK" ]; then
ssh-add -l > /dev/null
- if [ $? = 2 ] ; then
- echo "Socket $SSH_AUTH_SOCK is dead! Deleting!"
- rm -f "$SSH_AUTH_SOCK"
- return 4
- else
- echo "Found ssh-agent $SSH_AUTH_SOCK"
- return 0
- fi
+ case $? in
+ 2)
+ msg "Socket $SSH_AUTH_SOCK no responde. Eliminando..." \
+ "Socket $SSH_AUTH_SOCK is unresponsive. Removing..."
+ rm -f "$SSH_AUTH_SOCK"
+ return 4
+ ;;
+ 0)
+ msg "Agente SSH encontrado en $SSH_AUTH_SOCK" \
+ "Found SSH agent at $SSH_AUTH_SOCK"
+ return 0
+ ;;
+ esac
else
- echo "$SSH_AUTH_SOCK is not a socket!"
+ msg_err "$SSH_AUTH_SOCK no es un socket válido." "$SSH_AUTH_SOCK is not a valid socket."
return 3
fi
}
function sshagent_reload {
- # ssh agent sockets can be attached to a ssh daemon process or an
- # ssh-agent process.
-
- AGENTFOUND=0
+ local AGENTFOUND=0
- # Attempt to find and use the ssh-agent in the current environment
- if sshagent_testsocket ; then AGENTFOUND=1 ; fi
+ if sshagent_testsocket; then AGENTFOUND=1; fi
- # If there is no agent in the environment, search /tmp for
- # possible agents to reuse before starting a fresh ssh-agent
- # process.
- if [ $AGENTFOUND = 0 ] ; then
- for agentsocket in $(sshagent_findsockets) ; do
- if [ $AGENTFOUND != 0 ] ; then break ; fi
- if sshagent_testsocket "$agentsocket" ; then AGENTFOUND=1 ; fi
+ if [ $AGENTFOUND -eq 0 ]; then
+ for agentsocket in $(sshagent_findsockets); do
+ if sshagent_testsocket "$agentsocket"; then
+ AGENTFOUND=1
+ break
+ fi
done
fi
- # If at this point we still haven't located an agent, it's time to
- # start a new one
- if [ $AGENTFOUND = 0 ] ; then
+ if [ $AGENTFOUND -eq 0 ]; then
eval "$(ssh-agent)"
fi
- # Clean up
unset AGENTFOUND
unset agentsocket
- # Finally, show what keys are currently in the agent
ssh-add -l
}
@@ -136,9 +143,7 @@ if [[ -f "$HOME/.ssh/environment" ]]; then
sshagent_reload > /dev/null 2>&1
fi
-# Alias agents
alias sagent_start="sshagent_start"
alias sagent_stop="sshagent_stop"
-# Clean up not global functions
unset -f sshagent_findsockets sshagent_testsocket