Files
jabba/command/use.go
T
2016-03-24 22:31:13 -07:00

38 lines
967 B
Go

package command
import (
"os"
"github.com/shyiko/jabba/cfg"
"path"
"runtime"
"regexp"
)
func Use(ver string) ([]string, error) {
aliasValue := GetAlias(ver)
if aliasValue != "" {
ver = aliasValue
}
resolved, err := resolveLocal(ver)
if err != nil {
return nil, err
}
pth, _ := os.LookupEnv("PATH")
rgxp := regexp.MustCompile(regexp.QuoteMeta(path.Join(cfg.Dir(), "jdk")) + "[^:]+[:]")
// strip references to ~/.jabba/jdk/*, otherwise leave unchanged
pth = rgxp.ReplaceAllString(pth, "")
javaHome := path.Join(cfg.Dir(), "jdk", resolved)
if runtime.GOOS == "darwin" {
javaHome = path.Join(javaHome, "Contents", "Home")
}
systemJavaHome, overrideWasSet := os.LookupEnv("JAVA_HOME_BEFORE_JABBA")
if !overrideWasSet {
systemJavaHome, _ = os.LookupEnv("JAVA_HOME")
}
return []string{
"export PATH=" + path.Join(javaHome, "bin") + ":" + pth,
"export JAVA_HOME=" + javaHome,
"export JAVA_HOME_BEFORE_JABBA=" + systemJavaHome,
}, nil
}