Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add -r for removing older dir #656

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

linychuo
Copy link

@linychuo linychuo commented Jun 4, 2018

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!

@linychuo
Copy link
Author

linychuo commented Jun 5, 2018

for issue #643

@@ -82,7 +82,7 @@ function __sdkman_link_candidate_version {

# 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"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-r does not change anything here, because current is a symlink.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My terminal is MSYS2 on the windows 7, and creating a directory instead of symlink, so '-r' is needed.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@reitzmichnicht
Copy link

I would suggest to add a check if current is a symlink or a directory and execute then rm -f or rm -rf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants