akinomyoga / ble.sh

Bash Line Editor―a line editor written in pure Bash with syntax highlighting, auto suggestions, vim modes, etc. for Bash interactive sessions.
BSD 3-Clause "New" or "Revised" License
2.54k stars 81 forks source link

[choco fzf] FZF log errors #494

Open louiss0 opened 2 weeks ago

louiss0 commented 2 weeks ago

ble version: 0.4.0-devel4+75c4a84 Bash version: 5.2.21(1)-release I get errors in my console that look like this

ble/contrib/integration:fzf: failed to find "fzf" base directory
ble/contrib/integration:fzf: failed to find "fzf" base directory
ble/contrib/integration:fzf: failed to find "fzf" base directory

This is when I start. But the code still works I'm able to use ble.sh with fzf.

To start you need to download Cygwin and use the defaults.

Then download fzf fd and zoxide using choco

choco install  -y fzf fd zoxide

Then download basher.

curl -s https://raw.githubusercontent.com/basherpm/basher/master/install.sh | bash

Then use basher to download ble.sh

basher install akinomyoga/ble.sh

Then clone this repo.

git clone https://github.com/louiss0/blesh_setup  .

This folder comes with the .config/ folder that I used. It also comes with a .bashrc file. Just move the files to the root if the bash rc file exists just copy the code from the cloned repo and put it in there.

akinomyoga commented 2 weeks ago

The problem seems to be that the Cygwin package doesn't include the necessary files:

The files are distributed by independent packages:

but these will forcibly load the settings in Bash, so it's even worse for ble.sh.

Then, you need to manually prepare these files. You can download the settings from the upstream fzf repository (please be careful to download the settings for the same version of fzf. Cygwin fzf packages seem to be using 0.12.1):

and put is somewhere (such as ~/.config/fzf/shell/{completion,key-bindings}.bash and set the variable _ble_contrib_fzf_base=~/.config/fzf before the calls of `ble-import' as described here

louiss0 commented 2 weeks ago

I downloaded fzf from choco? I didn't know there was a package in cygwin

akinomyoga commented 2 weeks ago

OK, I thought you were talking about the Cygwin version of fzf installed through choco since you've specified Cygwin. There seems to be also the fzf package from the Chocolatey repository:

However, the detailed content of the package does not seem to be available on the above site. Then, I set up choco and actually tried choco install fzf. Although the Bash package doesn't seem to exist in the Chocolatey repository, the Chocolatey version of fzf seems to be visible from Cygwin Bash at C:\ProgramData\chocolatey\bin:

$ type -a fzf
fzf is /usr/bin/fzf
fzf is /bin/fzf
fzf is /cygdrive/c/ProgramData/chocolatey/bin/fzf

However, the related files still do not seem to be installed by Chocolatey's fzf package:


$ tree /cygdrive/c/ProgramData/chocolatey
/cygdrive/c/ProgramData/chocolatey/
├── CREDITS.txt
├── LICENSE.txt
├── bin
│   ├── RefreshEnv.cmd
│   ├── _processed.txt
│   ├── choco.exe
│   └── fzf.exe
├── choco.exe
├── choco.exe.ignore
├── choco.exe.manifest
├── config
│   ├── chocolatey.config
│   └── chocolatey.config.backup
├── helpers
│   ├── Chocolatey.PowerShell.dll
│   [...snip...]
│
├── lib
│   ├── chocolatey
│   │   └── chocolatey.nupkg
│   └── fzf
│       ├── fzf-0.53.0-windows_amd64_x32.zip.txt
│       ├── fzf.nupkg
│       ├── fzf.nuspec
│       ├── legal
│       │   ├── LICENSE.txt
│       │   └── VERIFICATION.txt
│       └── tools
│           ├── chocolateyInstall.ps1
│           └── fzf.exe
├── logs
│   ├── choco.summary.log
│   └── chocolatey.log
├── redirects
│   ├── RefreshEnv.cmd
│   ├── choco.exe
│   └── choco.exe.ignore
└── tools
    ├── 7z.dll
    ├── 7z.dll.manifest
    ├── 7z.exe
    ├── 7z.exe.ignore
    ├── 7z.exe.manifest
    ├── 7zip.license.txt
    ├── checksum.exe
    ├── checksum.exe.config
    ├── checksum.exe.ignore
    ├── checksum.license.txt
    ├── shimgen.exe
    ├── shimgen.exe.ignore
    └── shimgen.license.txt
akinomyoga commented 2 weeks ago

I left a request in the Chocolatey package.

akinomyoga commented 1 week ago

Maintainers of the fzf package on the Chocolatey repository haven't replied so far. I left another comment on the package page. If they don't respond for several days, I'll send a direct message to the maintainers.

louiss0 commented 1 week ago

Maintainers of the fzf package on the Chocolatey repository haven't replied so far. I left another comment on the package page. If they don't respond for several days, I'll send a direct message to the maintainers.

It's OK

akinomyoga commented 1 week ago

Thanks for your patience.

akinomyoga commented 1 week ago

I actually anticipate there will be more packages in the future that are missing the shell integration files because the upstream fzf started to support the option --bash (https://github.com/junegunn/fzf/pull/3675). If a package maintainer closely looks at README of fzf, they should notice that it still instructs the users to use the shell integration files for finer control, but careless maintainers would miss the description and may think as if they wouldn't need to ship the shell integration files anymore.

Although it might increase the initialization cost, I'll later add a fallback for the case where the package maintainers didn't include the corresponding files.