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