[FIXED] Corregir problema con el comando 'fj' en fj_login.sh

- Cambiar de script wrapper a enlace simbólico a berg
- Detectar la ubicación real de berg usando 'which' para crear el enlace
- Intentar crear enlace global en el mismo directorio que berg si hay permisos
- Crear enlace alternativo en ~/.local/bin y actualizar PATH cuando sea necesario
- Implementar eliminación adecuada del enlace en ambas ubicaciones
- Solucionar el error "fj: no se encontró la orden" por problemas de PATH

🤖 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 15:08:21 -05:00
parent 081cf5c5b7
commit fdf6f6fb49
Signed by: mrosero
GPG key ID: 83BD2A5F674B7E26

View file

@ -109,32 +109,56 @@ get_forgejo_url() {
# Función para crear alias fj para berg
create_fj_alias() {
# Crear script wrapper en ~/.local/bin
mkdir -p "$HOME/.local/bin"
# Crear enlace simbólico a berg en la misma carpeta donde está berg
local berg_path=$(which berg 2>/dev/null)
# Crear script fj que llama a berg
cat > "$HOME/.local/bin/fj" << EOF
#!/bin/bash
berg "\$@"
EOF
if [ -z "$berg_path" ]; then
echo "No se pudo encontrar la ubicación de berg"
return 1
fi
# Hacer ejecutable el script
chmod +x "$HOME/.local/bin/fj"
local berg_dir=$(dirname "$berg_path")
# Verificar si ~/.local/bin está en PATH y añadirlo si no lo está
if [[ ":$PATH:" != *":$HOME/.local/bin:"* ]]; then
echo "Para usar el comando 'fj', ejecute: export PATH=\"\$HOME/.local/bin:\$PATH\""
# Crear enlace simbólico 'fj' que apunta a berg en la misma ubicación
if [ -w "$berg_dir" ]; then
# Si tenemos permisos de escritura, crear enlace global
sudo ln -sf "$berg_path" "$berg_dir/fj"
echo "Comando 'fj' creado (global)"
else
echo "Comando 'fj' creado"
# Sin permisos, crear en .local/bin y actualizar PATH
mkdir -p "$HOME/.local/bin"
ln -sf "$berg_path" "$HOME/.local/bin/fj"
# Añadir .local/bin temporalmente al PATH si no está
if [[ ":$PATH:" != *":$HOME/.local/bin:"* ]]; then
export PATH="$HOME/.local/bin:$PATH"
echo "PATH actualizado temporalmente. Para uso permanente, añada a su .bashrc:"
echo "export PATH=\"\$HOME/.local/bin:\$PATH\""
fi
echo "Comando 'fj' creado (local)"
fi
}
# Función para eliminar alias fj
remove_fj_alias() {
# Eliminar script fj
if [ -f "$HOME/.local/bin/fj" ]; then
# Intentar eliminar enlaces simbólicos
local berg_path=$(which berg 2>/dev/null)
if [ -n "$berg_path" ]; then
local berg_dir=$(dirname "$berg_path")
# Eliminar enlace global si existe y tenemos permisos
if [ -L "$berg_dir/fj" ] && [ -w "$berg_dir" ]; then
sudo rm -f "$berg_dir/fj"
fi
fi
# Eliminar enlace local
if [ -L "$HOME/.local/bin/fj" ]; then
rm -f "$HOME/.local/bin/fj"
fi
echo "Comando 'fj' eliminado"
}
# Función para iniciar sesión con token