Conversation
|
for issue #643 |
| # Change the 'current' symlink for the candidate, hence affecting all shells. | ||
| if [[ -h "${SDKMAN_CANDIDATES_DIR}/${candidate}/current" || -d "${SDKMAN_CANDIDATES_DIR}/${candidate}/current" ]]; then | ||
| rm -f "${SDKMAN_CANDIDATES_DIR}/${candidate}/current" | ||
| rm -rf "${SDKMAN_CANDIDATES_DIR}/${candidate}/current" |
There was a problem hiding this comment.
-r does not change anything here, because current is a symlink.
There was a problem hiding this comment.
My terminal is MSYS2 on the windows 7, and creating a directory instead of symlink, so '-r' is needed.
There was a problem hiding this comment.
Sure, but that's a bug very specific to Windows, and forcefully removing a directory that msys has created doesn't solve anything. In fact, it would thus also delete a previously installed candidate! That is an unwanted side effect.
What we really want is msys to handle symlinks in the same way that all other Unix platforms do. Is there perhaps some kind of flag or setting we could use here for cygwin/msys?
There was a problem hiding this comment.
MSYS2 will creating really directory after executing 'ln -s xx xx', you can see this issue, so as your saying, it might specific deal with thing for MSYS2 on windows
|
I would suggest to add a check if current is a symlink or a directory and execute then rm -f or rm -rf |
Hi, I'm very pleasure using this tool, and I'm executing 'sdk upgrade', system prompts the new version of gradle, but when finish installing new version, it can't remove older version, and I found problem about removing, so I add '-r' to resolving this bug. Tks!