From fdf6f6fb4989ce170bcbdbfb73b61fb007007ad7 Mon Sep 17 00:00:00 2001 From: "Mauro Rosero P." Date: Sat, 15 Mar 2025 15:08:21 -0500 Subject: [PATCH] [FIXED] Corregir problema con el comando 'fj' en fj_login.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- bin/fj_login.sh | 54 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 15 deletions(-) diff --git a/bin/fj_login.sh b/bin/fj_login.sh index 10a8fb6..5288936 100755 --- a/bin/fj_login.sh +++ b/bin/fj_login.sh @@ -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