From af8758164bdd6ad4ea34e6d0f549dc208aad49e3 Mon Sep 17 00:00:00 2001 From: "Mauro Rosero P." Date: Sat, 15 Mar 2025 14:49:20 -0500 Subject: [PATCH] =?UTF-8?q?[IMPROVED]=20A=C3=B1adir=20alias=20'fj'=20para?= =?UTF-8?q?=20berg=20en=20fj=5Flogin.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Crear alias 'fj' que apunta a 'berg' al iniciar sesión - Eliminar alias cuando se cierra sesión (--logout) - Implementar funciones create_fj_alias() y remove_fj_alias() - Usar script de shell y enlaces simbólicos para crear el alias - Manejar diferentes ubicaciones según permisos (/usr/local/bin o ~/.local/bin) - Proporcionar instrucciones para añadir ~/.local/bin al PATH si es necesario 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- bin/fj_login.sh | 60 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/bin/fj_login.sh b/bin/fj_login.sh index 0eea8d8..f4d09b7 100755 --- a/bin/fj_login.sh +++ b/bin/fj_login.sh @@ -107,6 +107,57 @@ get_forgejo_url() { fi } +# Función para crear alias fj para berg +create_fj_alias() { + local alias_file="$HOME/.fj_alias" + + # Crear alias global fj -> berg + echo '#!/bin/bash' > "$alias_file" + echo 'berg "$@"' >> "$alias_file" + chmod +x "$alias_file" + + # Crear enlace simbólico en /usr/local/bin si tiene permisos + if [ -w "/usr/local/bin" ]; then + sudo ln -sf "$alias_file" /usr/local/bin/fj + echo "Alias global 'fj' creado en /usr/local/bin/fj" + else + # Intentar crear en ~/.local/bin como alternativa + mkdir -p "$HOME/.local/bin" + ln -sf "$alias_file" "$HOME/.local/bin/fj" + + # Asegurarse de que ~/.local/bin esté en PATH + if [[ ":$PATH:" != *":$HOME/.local/bin:"* ]]; then + echo "Añadiendo $HOME/.local/bin a PATH para esta sesión" + export PATH="$HOME/.local/bin:$PATH" + echo "NOTA: Para que el alias 'fj' funcione en futuras sesiones, añada esto a su .bashrc o .profile:" + echo "export PATH=\"\$HOME/.local/bin:\$PATH\"" + fi + echo "Alias local 'fj' creado en $HOME/.local/bin/fj" + fi +} + +# Función para eliminar alias fj +remove_fj_alias() { + local alias_file="$HOME/.fj_alias" + + # Eliminar enlace simbólico de /usr/local/bin si existe + if [ -L "/usr/local/bin/fj" ] && [ -w "/usr/local/bin" ]; then + sudo rm -f /usr/local/bin/fj + echo "Alias global 'fj' eliminado de /usr/local/bin/fj" + fi + + # Eliminar enlace simbólico de ~/.local/bin si existe + if [ -L "$HOME/.local/bin/fj" ]; then + rm -f "$HOME/.local/bin/fj" + echo "Alias local 'fj' eliminado de $HOME/.local/bin/fj" + fi + + # Eliminar archivo de alias + if [ -f "$alias_file" ]; then + rm -f "$alias_file" + fi +} + # Función para iniciar sesión con token login() { # Verificar que el archivo de token encriptado existe @@ -137,6 +188,8 @@ login() { if [ $login_status -eq 0 ]; then echo "Sesión iniciada correctamente en Forgejo." + # Crear alias fj para berg + create_fj_alias else echo "Error al iniciar sesión en Forgejo. Por favor, verifique su token." exit 1 @@ -147,7 +200,12 @@ login() { logout() { echo "Cerrando sesión de Forgejo..." berg auth logout - if [ $? -eq 0 ]; then + local logout_status=$? + + # Eliminar alias fj + remove_fj_alias + + if [ $logout_status -eq 0 ]; then echo "Sesión cerrada correctamente." else echo "Error al cerrar la sesión."