[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:
parent
081cf5c5b7
commit
fdf6f6fb49
1 changed files with 39 additions and 15 deletions
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue