jdx / mise

dev tools, env vars, task runner
https://mise.jdx.dev
MIT License
8.03k stars 210 forks source link

Feature: Custom names for tools installed via backends #2293

Open nickchomey opened 2 weeks ago

nickchomey commented 2 weeks ago

I have installed various go packages via the fantastic mise backends feature. I love it.

But the one thing that is annoying about it is the name that the tools receive.

e.g. mise install go:github.com/go-task/task/v3/cmd/task@latest results in it being installed to .local/share/mise/installs/go-github-com-go-task-task-v3-cmd-task, which I suppose is fine.

More annoying is that we have to use mise use go:github.com/go-task/task/v3/cmd/task. Extremely verbose.

Yet, once it has been mise use'd, we can just run task --help in the CLI.

So, it would be great if there were a name option, such as mise install --name <NAME> [tool@version] or even requirement mise install [NAME] [tool@version]

which would result in something like mise use go:task rather than mise use go:github.com/go-task/task/v3/cmd/task. Even better would be if we could omit the backend prefix so that it is just mise use task.

A rename mechanism/command would be good as well, in case we want to change it later. It should also work if we manually rename the tool's directory, entry in .mise.backend.json and use in mise.toml files

Or, best of all, if the tool could just automatically take the name of the binary - as is the case with built-in and asdf plugins - then perhaps none of this would be necessary (but still might be useful)!