[IMPROVED] Añadir alias 'fj' para berg en fj_login.sh

- 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 <noreply@anthropic.com>
This commit is contained in:
Mauro Rosero P. 2025-03-15 14:49:20 -05:00
parent 1cbb1e0b3a
commit af8758164b
Signed by: mrosero
GPG key ID: 83BD2A5F674B7E26

View file

@ -107,6 +107,57 @@ get_forgejo_url() {
fi 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 # Función para iniciar sesión con token
login() { login() {
# Verificar que el archivo de token encriptado existe # Verificar que el archivo de token encriptado existe
@ -137,6 +188,8 @@ login() {
if [ $login_status -eq 0 ]; then if [ $login_status -eq 0 ]; then
echo "Sesión iniciada correctamente en Forgejo." echo "Sesión iniciada correctamente en Forgejo."
# Crear alias fj para berg
create_fj_alias
else else
echo "Error al iniciar sesión en Forgejo. Por favor, verifique su token." echo "Error al iniciar sesión en Forgejo. Por favor, verifique su token."
exit 1 exit 1
@ -147,7 +200,12 @@ login() {
logout() { logout() {
echo "Cerrando sesión de Forgejo..." echo "Cerrando sesión de Forgejo..."
berg auth logout 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." echo "Sesión cerrada correctamente."
else else
echo "Error al cerrar la sesión." echo "Error al cerrar la sesión."