Skip to content

Commit 7547946

Browse files
author
Oliver Weiler
authored
Remove platform specific code, make tests more deterministic (#889)
* Remove platform-specific code for use command * Remove platform-specific code for current command * Make tests more deterministic
1 parent 40f1844 commit 7547946

File tree

3 files changed

+7
-20
lines changed

3 files changed

+7
-20
lines changed

src/main/bash/sdkman-current.sh

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,8 @@ function __sdkman_determine_current_version() {
5656
candidate="$1"
5757
present=$(__sdkman_path_contains "${SDKMAN_CANDIDATES_DIR}/${candidate}")
5858
if [[ "$present" == 'true' ]]; then
59-
if [[ "$solaris" == true ]]; then
60-
CURRENT=$(echo $PATH | gsed -r "s|${SDKMAN_CANDIDATES_DIR}/${candidate}/([^/]+)/bin|!!\1!!|1" | gsed -r "s|^.*!!(.+)!!.*$|\1|g")
61-
elif [[ "$darwin" == true ]]; then
62-
CURRENT=$(echo $PATH | sed -E "s|${SDKMAN_CANDIDATES_DIR}/${candidate}/([^/]+)/bin|!!\1!!|1" | sed -E "s|^.*!!(.+)!!.*$|\1|g")
63-
else
64-
CURRENT=$(echo $PATH | sed -r "s|${SDKMAN_CANDIDATES_DIR}/${candidate}/([^/]+)/bin|!!\1!!|1" | sed -r "s|^.*!!(.+)!!.*$|\1|g")
59+
if [[ $PATH =~ ${SDKMAN_CANDIDATES_DIR}/${candidate}/([^/]+)/bin ]]; then
60+
CURRENT=${BASH_REMATCH[1]}
6561
fi
6662

6763
if [[ "$CURRENT" == "current" ]]; then

src/main/bash/sdkman-use.sh

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,8 @@ function __sdk_use() {
3737
# Just update the *_HOME and PATH for this shell.
3838
__sdkman_set_candidate_home "$candidate" "$version"
3939

40-
# Replace the current path for the candidate with the selected version.
41-
if [[ "$solaris" == true ]]; then
42-
export PATH=$(echo $PATH | gsed -r "s!${SDKMAN_CANDIDATES_DIR}/${candidate}/([^/]+)!${SDKMAN_CANDIDATES_DIR}/${candidate}/${version}!g")
43-
44-
elif [[ "$darwin" == true ]]; then
45-
export PATH=$(echo $PATH | sed -E "s!${SDKMAN_CANDIDATES_DIR}/${candidate}/([^/]+)!${SDKMAN_CANDIDATES_DIR}/${candidate}/${version}!g")
46-
47-
else
48-
export PATH=$(echo "$PATH" | sed -r "s!${SDKMAN_CANDIDATES_DIR}/${candidate}/([^/]+)!${SDKMAN_CANDIDATES_DIR}/${candidate}/${version}!g")
40+
if [[ $PATH =~ ${SDKMAN_CANDIDATES_DIR}/${candidate}/([^/]+) ]]; then
41+
export PATH=${PATH//${SDKMAN_CANDIDATES_DIR}\/${candidate}\/${BASH_REMATCH[1]}/${SDKMAN_CANDIDATES_DIR}\/${candidate}\/${version}}
4942
fi
5043

5144
if [[ ! (-L "${SDKMAN_CANDIDATES_DIR}/${candidate}/current" || -d "${SDKMAN_CANDIDATES_DIR}/${candidate}/current") ]]; then

src/test/groovy/sdkman/stubs/UnameStub.groovy

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package sdkman.stubs
22

3-
import sdkman.support.UnixUtils
4-
53
class UnameStub {
64

75
private File file
8-
private platform = System.getProperty("os.name")
9-
private machine = System.getProperty("os.arch")
10-
private kernel = UnixUtils.asSdkmanPlatform(platform, machine)
6+
private platform = "Linux"
7+
private kernel = "Linux"
8+
private machine = "X86_64"
119

1210
static UnameStub prepareIn(File folder) {
1311
folder.mkdirs()

0 commit comments

Comments
 (0)