raimon49 / asdf-hurl

Hurl plugin for asdf version manager
MIT License
0 stars 1 forks source link

Also install hurlfmt, man pages and completions #6

Open jc00ke opened 1 month ago

jc00ke commented 1 month ago

Is your feature request related to a problem? Please describe.

I'd love completions and I'd like to wire up hurlfmt to my editor, which is packaged along with hurl in the release archives. Seems like hurl and hurlfmt can remain in the current asdf/mise path, but I'm not sure about the completions and the man pages.

raimon49 commented 1 month ago

I think it would be possible to modify the download script for this plugin to install man/* and completions* with the hurl command binary.

$ tar zxvf hurl-4.3.0-aarch64-unknown-linux-gnu.tar.gz
hurl-4.3.0-aarch64-unknown-linux-gnu/
hurl-4.3.0-aarch64-unknown-linux-gnu/man/
hurl-4.3.0-aarch64-unknown-linux-gnu/man/man1/
hurl-4.3.0-aarch64-unknown-linux-gnu/man/man1/hurlfmt.1.gz
hurl-4.3.0-aarch64-unknown-linux-gnu/man/man1/hurl.1.gz
hurl-4.3.0-aarch64-unknown-linux-gnu/bin/
hurl-4.3.0-aarch64-unknown-linux-gnu/bin/hurlfmt
hurl-4.3.0-aarch64-unknown-linux-gnu/bin/hurl
hurl-4.3.0-aarch64-unknown-linux-gnu/completions/
hurl-4.3.0-aarch64-unknown-linux-gnu/completions/hurlfmt.bash
hurl-4.3.0-aarch64-unknown-linux-gnu/completions/hurlfmt.fish
hurl-4.3.0-aarch64-unknown-linux-gnu/completions/_hurlfmt
hurl-4.3.0-aarch64-unknown-linux-gnu/completions/hurl.bash
hurl-4.3.0-aarch64-unknown-linux-gnu/completions/_hurl
hurl-4.3.0-aarch64-unknown-linux-gnu/completions/hurl.fish

I don't know either,

Patches to modify the download scripts are welcome. However, I am not sure if applying it will solve your problem.

jc00ke commented 1 month ago

Would the file man/man1/hurlfmt.1.gz need to be extracted?

I don't believe so. IIRC man will use the contents in the compressed file.

Connecting to your shell or editor by referencing extracted directories $ASDF_DIR/installs/hurl/x.y.z/man is outside the scope of this plugin.

I totally agree, though I wonder if asdf adds the right path? I use mise and this is what I see:

➜ manpath 
/home/jesse/.local/share/mise/installs/elixir/1.16.0/man:/home/jesse/.local/share/mise/installs/fzf/0.45.0/man:/home/jesse/.local/share/mise/installs/lua/5.4.6/man:/home/jesse/.local/share/mise/installs/neovim/0.9.5/man:/home/jesse/.local/share/mise/installs/node/latest/share/man:/home/jesse/.local/share/mise/installs/python/3.12.1/share/man:/home/jesse/.local/share/mise/installs/ruby/3.3.1/share/man:/home/jesse/.local/share/mise/installs/sqlite/3.45.0/share/man:/usr/local/man:/usr/local/share/man:/usr/share/man

Seems like all of the tools I install with mise (which relies on asdf plugins if it doesn't have its own) put their man dirs in the manpath.

Completions would probably be the trickiest because AFAIK they go in different places depending on the shell. Fish, for instance, suggest that a vendor's completions go in /usr/share/fish/vendor_completions.d/ (corresponding fish docs). I haven't used bash in years and I never used zsh, but it seems like the former might use /etc/bash_completion.d/ and maybe /usr/share/zsh/functions/Completion/Linux for zsh (not sure on MacOS).

raimon49 commented 1 month ago

I'm a combination of vanilla asdf and zsh. I don't see manpath added to my environment either.

Completions also handles tools installed with Homebrew (or Linuxbrew) well, but so far I have not been able to take advantage of the tools installed with asdf.

jc00ke commented 6 days ago

I suppose the fish completions should go in (based on these specific docs) ~/.local/share/fish/vendor_completions.d, or, and maybe this is something that asdf would be into, we modify $fish_complete_path.