aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesus <heckyel@hyperbola.info>2025-05-18 17:08:38 -0500
committerJesus <heckyel@hyperbola.info>2025-05-18 17:08:38 -0500
commit6fff4075d94a87997dba4539446ef696a36278cd (patch)
tree78cc4188bfc30552e1579f10f2e1fe54eb13d441
parentcc476600113c04cc8c2480417f36c61031840e31 (diff)
downloadhyperterm-6fff4075d94a87997dba4539446ef696a36278cd.tar.lz
hyperterm-6fff4075d94a87997dba4539446ef696a36278cd.tar.xz
hyperterm-6fff4075d94a87997dba4539446ef696a36278cd.zip
update
-rw-r--r--hyperterm/core/update.sh2
-rw-r--r--hyperterm/hyperterm.sha51236
-rw-r--r--hyperterm/tools/ssh-agent.sh47
-rw-r--r--uninstall.sh55
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