diff options
author | Jesus <heckyel@hyperbola.info> | 2025-05-18 17:08:38 -0500 |
---|---|---|
committer | Jesus <heckyel@hyperbola.info> | 2025-05-18 17:08:38 -0500 |
commit | 6fff4075d94a87997dba4539446ef696a36278cd (patch) | |
tree | 78cc4188bfc30552e1579f10f2e1fe54eb13d441 | |
parent | cc476600113c04cc8c2480417f36c61031840e31 (diff) | |
download | hyperterm-6fff4075d94a87997dba4539446ef696a36278cd.tar.lz hyperterm-6fff4075d94a87997dba4539446ef696a36278cd.tar.xz hyperterm-6fff4075d94a87997dba4539446ef696a36278cd.zip |
update
-rw-r--r-- | hyperterm/core/update.sh | 2 | ||||
-rw-r--r-- | hyperterm/hyperterm.sha512 | 36 | ||||
-rw-r--r-- | hyperterm/tools/ssh-agent.sh | 47 | ||||
-rw-r--r-- | uninstall.sh | 55 |
4 files changed, 85 insertions, 55 deletions
diff --git a/hyperterm/core/update.sh b/hyperterm/core/update.sh index a3b4f9c..578ab76 100644 --- a/hyperterm/core/update.sh +++ b/hyperterm/core/update.sh @@ -82,7 +82,7 @@ function updbashrc() { # clone '--depth=1' not support cgit msg "Usando: $URL" \ "Using: $URL" - (git clone $URL /tmp/hyperterm/ --depth=1 &> /dev/null) + (git clone "$URL" /tmp/hyperterm/ --depth=1 &> /dev/null) printf '%s\r' "##### (33%)" sleep 1 # core diff --git a/hyperterm/hyperterm.sha512 b/hyperterm/hyperterm.sha512 index eb23919..cd6cbe2 100644 --- a/hyperterm/hyperterm.sha512 +++ b/hyperterm/hyperterm.sha512 @@ -1,27 +1,27 @@ cdfe049ec07f02a1893cda29c13085d06709e09a30b0c2e1111585278315f03139d61080c883cb3fd87f2bf64e05d9b5e5eaaad84c97ced890d83c73eb399fcb ../.bash_profile -04ab2fefad0680b22001f241e2ce772d07eadef206bd09208627d9dc1b4366d190374d439930215db5f5a742f9fe0bba8fcbaf34164a9332ad7e132c70ba9f92 ./hyperterm.sh -abbceb6ae6d2c13f02152334894a09e2f0d9d84a1bfd57a43ade158d25e5ab53da9396c8995a28f9422263299fafe349da09e19311de46b45494454ab517a9ca ./core/update.sh +42fadfdc8adee2825df79ae7ee449fcc54c383a114fa3a28bab66adae9ce026078dd793e3b5e2fe918cb088fbfc0c955828cbcf0b28f977f2904e8b19a2019fd ./core/update.sh 1cfba599047d84a17ff92b695ebf527a505a30acc9ec21a2b9f410a7ea6dde4b23b5cf62e557d82f2fe9a8980649942424b879ca53baae4d4cb3057681baa7b6 ./core/colors.sh +065cfa39f1b4312ed275ad1039827a24f703176c653a8d27303d145f9d389a60ec5b3a9eb167e060cc6fd093b9c03cfb1a8b70254d444fbc6e62e2297d88b310 ./core/status.sh 2036a79215a5434e31f3406bea3f2ffa7e94ffef86c2d1ceb8865db29f19fe7f342f9cab93288f57c75daed36ef146f85d15f8d633931a27d55c3983f55ef15b ./core/git.sh -f3e00b2aa8ab9f3ab44570adaa2520408ed66fd00f551654d60b64a4be3546ec781b7efa39bcd774937e654b6ffb4c7af3f21eeb36caf9c01f82f85cf28e2b4d ./core/languages.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 -f760432c3d76befad30588299eb2d1412d77b22fd850ffbd840c72123885d4e916a7e0b16e7048c5dcd6e58fa3bc0807cda18ae64045a7495684ba37109e4b4a ./tools/compress.sh -1b9c148ab8577fe15b4d503ec480b36eeaea42bf7048e35a0866280ee87a6c8de31c54600a8e455147db987e7aa61c8aa585748a9945c0472992d28fdccb8c0f ./tools/export.sh -8606294d403c5fd9cd5c316401387b5aea79de1d193aa9f23210c94bf32ff83e8d9dc98466d017bc4d9d037cf548335fde1b2f2631e3597a87eec7ccb8e78d6c ./tools/network.sh -579852abd8378d754fcaccb903c1fefcd4020a578ba63fb3687a08027a937fbbd18e8a1ac22b448edc14445e088134e1e909ae2f3bfea8702df8abf56000daa0 ./tools/ruby.sh -7654c0c706b4b09f7e9a7536fad265410efd739fbed291241b72304ef11869757fdbc3f9ab4333451f6fdafd5d492ba07aa8c846927474979d1b9c69f573a641 ./tools/sysinfo.sh +f3e00b2aa8ab9f3ab44570adaa2520408ed66fd00f551654d60b64a4be3546ec781b7efa39bcd774937e654b6ffb4c7af3f21eeb36caf9c01f82f85cf28e2b4d ./core/languages.sh +88b215a6c2df22bc84bda981b3ff1d27ba391f03e2b84b95adefe1e8885b079b0da7c885ec0ad3256b60b8da9efa9ba8ab28906ece76781b192ea474d579d143 ./tools/rar2zip.sh 73becd983f15d68b3c459adb4fe847bbbd6343519640aa5e03bb530e61a59ed0545dd3b3621ad82da378bbf15c4d9ee63984004d3bfed26d9d9df643f1524de5 ./tools/proxy.sh 0b9671c851278cd6a5484ab95b62606b0b925f9606f4de400c5e15a66e35e86bb6bb15e4e1b599ca819c230604bce0ca755d599ec9cd59a14b41f352ef897997 ./tools/aliases.sh -88b215a6c2df22bc84bda981b3ff1d27ba391f03e2b84b95adefe1e8885b079b0da7c885ec0ad3256b60b8da9efa9ba8ab28906ece76781b192ea474d579d143 ./tools/rar2zip.sh fab9d339a99c7d2e1809d1c44f533523c6bfcdcc8d63c62b335ce7d4c666c8bdd7ac319316bf71f043163a3a0184e25ecfe1ee32724627424d042a05fa80ce77 ./tools/vconverter.sh ee1d6d1f9b010318985f7154c2a9173c8f2ab6b637cd3c8d2a9b403e83470e15a273dcff326a84f035660807d7cfcf04efe5abc0495e25ae7339b8807899cf0d ./tools/listuser.sh +579852abd8378d754fcaccb903c1fefcd4020a578ba63fb3687a08027a937fbbd18e8a1ac22b448edc14445e088134e1e909ae2f3bfea8702df8abf56000daa0 ./tools/ruby.sh +1ba63accea347b96c30fcd4a2fa84c531836b082ed5ced035a8f30a0d738724f8f171ec85645779e682c8d0aa1d5f6c5b32e182454cdb8f0c85dde08a37a96ca ./tools/ssh-agent.sh +8606294d403c5fd9cd5c316401387b5aea79de1d193aa9f23210c94bf32ff83e8d9dc98466d017bc4d9d037cf548335fde1b2f2631e3597a87eec7ccb8e78d6c ./tools/network.sh 243e3a076f1696bde1e464b479e221876177eb98c92415a09de8dc9e8d138e88e006eb9fa441ca1ab19d260cb3fd4de82dc54feae73453e229c3a8fdab3043f0 ./tools/virtualenv.sh -49f50efa86a966359f7f404955ec7573ba836654cb19f43a1023a27324327475df7136ae7b7fb55784bc8619ece4254b5105b13c0ef75fe7061a558548e31a0a ./tools/ssh-agent.sh +1b9c148ab8577fe15b4d503ec480b36eeaea42bf7048e35a0866280ee87a6c8de31c54600a8e455147db987e7aa61c8aa585748a9945c0472992d28fdccb8c0f ./tools/export.sh +7654c0c706b4b09f7e9a7536fad265410efd739fbed291241b72304ef11869757fdbc3f9ab4333451f6fdafd5d492ba07aa8c846927474979d1b9c69f573a641 ./tools/sysinfo.sh +f760432c3d76befad30588299eb2d1412d77b22fd850ffbd840c72123885d4e916a7e0b16e7048c5dcd6e58fa3bc0807cda18ae64045a7495684ba37109e4b4a ./tools/compress.sh +1d70b22277aa1d37e770f952411687c30d47da8caae278e431208671af239591d259258b4982ca9b61faf57f266958a002180496b0db036a94250604212aa1bb ./themes/pure.sh +0b6705dae598dff024fc10fd9c4710a298e7d2ab7b7f3895eb8654d1ad7236a0b0f72511f1db7df8155f32aa882ac2bf55a9d6a04c227ed6285b866ec3a29904 ./themes/simple.sh +7efe3770a629d6168b1c9007f420d2d657fa38fc1673dd5dc365dcf3c9d4c34456e346f9ed739c347133f93ad78cf88d0d54fe95523ce5d91a51cd49650d7525 ./themes/special.sh +403fe028575baa22c39dd11ac56a246369b8e38524c216f6d564b59aa22c60a426941f755ad3adb75f212c9124350ce3aeb114ba365ded1ed33b62ac480a60aa ./themes/light_theme.sh +074e8549d638dee7470583c04ebbb7408181974806bd5e2cf5fc134ddee83c01040ed9d59a8aa00a87287b25df1c2e23edf3c063426952a8aeb56db8310ef8fd ./themes/joy.sh +07bb7b6bd609e855d0a7c9e39a0ff2959851f559106e8f59816312f298b03e87f39e53430869ed61a1271e265e976ea6b56f7ccee46c4ec3c37b40f1fc11cfad ./themes/default.sh +c6c149704883ce5cbbd941019259effb105dd6910c98910782024311b3362df2e68d03c947908d40686c2620c1521aeee2ffb019a906ad367be1cc3d429ecd82 ./themes/minterm.sh +04ab2fefad0680b22001f241e2ce772d07eadef206bd09208627d9dc1b4366d190374d439930215db5f5a742f9fe0bba8fcbaf34164a9332ad7e132c70ba9f92 ./hyperterm.sh diff --git a/hyperterm/tools/ssh-agent.sh b/hyperterm/tools/ssh-agent.sh index 1012d81..3db6418 100644 --- a/hyperterm/tools/ssh-agent.sh +++ b/hyperterm/tools/ssh-agent.sh @@ -4,8 +4,38 @@ # SSH-AGENT #------------ function sshagent_start { - - # clean previous ssh credentials + 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 + + # 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 + ;; + esac + + # Clean previous ssh credentials (rm -rf /tmp/ssh-* > /dev/null) SSH_ENV="$HOME/.ssh/environment" @@ -15,11 +45,16 @@ function sshagent_start { # shellcheck source=/dev/null source "${SSH_ENV}" > /dev/null - # Set the default time to 5 days if not provided - local days="${1:-5d}" + if [[ ! -f "$key_path" ]]; then + printf '\e[1;31m%s\e[m\n' "SSH key not found at $key_path" + return 1 + fi - ssh-add -t "$days" - printf '\e[1;36m%s\e[m\n' "succeeded" + 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)" + else + printf '\e[1;31m%s\e[m\n' "Failed to add SSH key" + fi } function sshagent_stop { diff --git a/uninstall.sh b/uninstall.sh index 2c884f4..7c963a5 100644 --- a/uninstall.sh +++ b/uninstall.sh @@ -39,21 +39,21 @@ function show_usage() { "--help (-h): Display this help message" msg "--silent (-s): Desinstala sin solicitar entrada" \ "--silent (-s): Uninstall without prompting for input" - exit 0; } +# Parse long options for param in "$@"; do shift case "$param" in - "--help") set -- "$@" "-h" ;; - "--silent") set -- "$@" "-s" ;; - *) set -- "$@" "$param" + "--help") set -- "$@" "-h" ;; + "--silent") set -- "$@" "-s" ;; + *) set -- "$@" "$param" esac done +# Parse short options OPTIND=1 -while getopts "hs" opt -do +while getopts "hs" opt; do case "$opt" in "h") show_usage; exit 0 ;; "s") silent=true ;; @@ -62,46 +62,42 @@ do done shift $((OPTIND - 1)) -# Uninstall -# --------- +# Uninstall function function _uninstall() { - if [ -z "$HYPER_BASH" ]; - then + if [[ -z "$HYPER_BASH" ]]; then HYPER_BASH="$HOME/.hyperterm" fi case $OSTYPE in - darwin*) - CONFIG_FILE=.bash_profile - ;; - *) - CONFIG_FILE=.bashrc - ;; + darwin*) CONFIG_FILE=.bash_profile ;; + *) CONFIG_FILE=.bashrc ;; esac BACKUP_FILE=$CONFIG_FILE.bak - if [ ! -e "$HOME/$BACKUP_FILE" ]; then + if [[ ! -e "$HOME/$BACKUP_FILE" ]]; then msg_err "\033[0;33mEl archivo de respaldo $HOME/$BACKUP_FILE no fue encontrado.\033[0m" \ "\033[0;33mBackup file $HOME/$BACKUP_FILE not found.\033[0m" - test -w "$HOME/$CONFIG_FILE" && - mv "$HOME/$CONFIG_FILE" "$HOME/$CONFIG_FILE.uninstall" && + if test -w "$HOME/$CONFIG_FILE"; then + mv "$HOME/$CONFIG_FILE" "$HOME/$CONFIG_FILE.uninstall" msg "\033[0;32mEl archivo $HOME/$CONFIG_FILE ha sido movido a $HOME/$CONFIG_FILE.uninstall.\033[0m" \ "\033[0;32mMoved your $HOME/$CONFIG_FILE to $HOME/$CONFIG_FILE.uninstall.\033[0m" + fi else - test -w "$HOME/$BACKUP_FILE" && - cp -a "$HOME/$BACKUP_FILE" "$HOME/$CONFIG_FILE" && - rm "$HOME/$BACKUP_FILE" && + if test -w "$HOME/$BACKUP_FILE"; then + cp -a "$HOME/$BACKUP_FILE" "$HOME/$CONFIG_FILE" + rm "$HOME/$BACKUP_FILE" msg "\033[0;32mTu archivo original $CONFIG_FILE ha sido restaurado.\033[0m" \ "\033[0;32mYour original $CONFIG_FILE has been restored.\033[0m" + fi fi - if [[ -d $HOME/.hyperterm ]]; then + if [[ -d "$HOME/.hyperterm" ]]; then rm -fr "$HOME/.hyperterm" fi - msg "\033[1;32m==>\e[0m\033[1m Desintalación realizada con éxito! \e[m" \ + msg "\033[1;32m==>\e[0m\033[1m Desinstalación realizada con éxito! \e[m" \ "\033[1;32m==>\e[0m\033[1m Uninstallation finished successfully! \e[m" msg "\033[0;32mDisculpe las molestias!! \e[m" \ @@ -113,20 +109,19 @@ function _uninstall() { msg "\033[1;36m ->\e[0m\033[1m Abra una nueva shell/tab/terminal \e[m" \ "\033[1;36m ->\e[0m\033[1m Open a new shell/tab/terminal \e[m" } -# ------- -if ! [[ $silent ]]; then - while ! [ $silent ] - do +# Run uninstaller interactively or silently +if [[ -z "$silent" ]]; then + while [[ -z "$silent" ]]; do question=$(msg "¿Estás seguro de desinstalar HyperTerm? [s/N]: " \ "Are you sure to uninstall HyperTerm? [y/N]: ") read -r -p "$question" input - case $input in + case "$input" in [yY]|[sS]) _uninstall "$@"; break ;; [nN]|"") break ;; *) msg "Por favor responde sí o no" \ - "Please answer yes or no.";; + "Please answer yes or no." ;; esac done else |