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