-
Notifications
You must be signed in to change notification settings - Fork 64
implement gofish switch [food] [version]
#7
Comments
fish switch [food] [version]
gofish switch [food] [version]
I don't know if this happens only for Windows but, Even the Powershell script used to install gofish moves |
Yeah this is intentional. Only administrators can create symlinks on Windows :( |
Can you try creating a symbolic link (which should work in Windows 10 build >= 1703), and then fallback to creating a regular shortcut ( I know |
We do that already. See Lines 21 to 37 in 01c940e
The only way for symlinks to work properly on Windows is to run your terminal as an administrator. If if fails (such as when running NOT as administrator), we fall back to |
for example, here's how it looks when running
As you can see, minikube.exe is now a symlink. When running as an unprivileged user gofish will just move the file to the desired location. |
Oh... I missed the part of your comment where you mentioned creating Shortcuts instead. Sorry! Shortcuts won't work because we're also allowing users to symlink more than just executables from the package. For example, one may want to symlink manpages to |
FYI, scoop completely depends on shortcuts. For example, try installing node. The node installation directory has shortcuts to other directories, and the current version is maintained by using a shortcut named "current" that points to different folders. |
I would like to give this a try, if no one picked it yet. |
feel free! |
To make this work, we need to either provide fish-food for every version we want to install or we need to inject the version, that should be installed, into the lua-script and check if that version exists. |
There's two train of thoughts:
I'm not fond of the idea that the version should be injected into the lua script on-the-fly. That breaks the shasum check, and it also breaks the assumption that the metadata within the lua script is immutable (i.e. for use cases like when we want to check the package signatory via GPG). I'm personally leaning towards switching out the backend to replicate |
Okay. I've had a look at a ton of new package managers out there today. Most appear to be following the pattern described in #130, so I'm going to look into how we can accommodate that workflow. I'm looking to implement this for the next release (0.14.0). Once that's done, |
change versions from the current release to an older release.
The text was updated successfully, but these errors were encountered: