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."