# HG changeset patch # User Tom Rodriguez # Date 1421257961 28800 # Node ID c3bb622095f1a801192dd1a3c17108e2db75673b # Parent 7f4cb7587f4cea0def79c1abeeec9f023d3a65e8 Prompt to fill EXTRA_JAVA_HOMES like JAVA_HOME diff -r 7f4cb7587f4c -r c3bb622095f1 mxtool/mx.py --- a/mxtool/mx.py Wed Jan 14 16:40:56 2015 +0100 +++ b/mxtool/mx.py Wed Jan 14 09:52:41 2015 -0800 @@ -1593,9 +1593,21 @@ p.all_deps(deps, includeLibs=includeLibs, includeJreLibs=includeJreLibs, includeAnnotationProcessors=includeAnnotationProcessors) return deps -def _handle_missing_java_home(): +def _handle_lookup_java_home(jdk): + return _handle_lookup_jdk(jdk, 'JAVA_HOME', '--java-home', False) + +def _handle_lookup_extra_java_homes(jdk): + return _handle_lookup_jdk(jdk, 'EXTRA_JAVA_HOMES', '--extra-java-homes', True) + +def _handle_lookup_jdk(jdk, varName, flagName, allowMultiple): + if jdk != None and jdk != '': + return jdk + jdk = os.environ.get(varName) + if jdk != None and jdk != '': + return jdk + if not sys.stdout.isatty(): - abort('Could not find bootstrap JDK. Use --java-home option or ensure JAVA_HOME environment variable is set.') + abort('Could not find bootstrap {0}. Use {1} option or ensure {2} environment variable is set.'.format(varName, flagName, varName)) candidateJdks = [] if get_os() == 'darwin': @@ -1613,12 +1625,15 @@ javaHome = None if len(candidateJdks) != 0: - javaHome = select_items(candidateJdks + [''], allowMultiple=False) + log('Missing value for {0}.'.format(varName)) + javaHome = select_items(candidateJdks + [''], allowMultiple=allowMultiple) if javaHome == '': javaHome = None + if javaHome != None and allowMultiple: + javaHome = os.pathsep.join(javaHome) while javaHome is None: - javaHome = raw_input('Enter path of bootstrap JDK: ') + javaHome = raw_input('Enter path of JDK for {0}: '.format(varName)) rtJarPath = join(javaHome, 'jre', 'lib', 'rt.jar') if not exists(rtJarPath): log('Does not appear to be a valid JDK as ' + rtJarPath + ' does not exist') @@ -1627,9 +1642,9 @@ break envPath = join(_primary_suite.mxDir, 'env') - if ask_yes_no('Persist this setting by adding "JAVA_HOME=' + javaHome + '" to ' + envPath, 'y'): + if ask_yes_no('Persist this setting by adding "{0}={1}" to {2}'.format(varName, javaHome, envPath), 'y'): with open(envPath, 'a') as fp: - print >> fp, 'JAVA_HOME=' + javaHome + print >> fp, varName + '=' + javaHome return javaHome @@ -1683,13 +1698,8 @@ if opts.very_verbose: opts.verbose = True - if opts.java_home is None: - opts.java_home = os.environ.get('JAVA_HOME') - if opts.extra_java_homes is None: - opts.extra_java_homes = os.environ.get('EXTRA_JAVA_HOMES') - - if opts.java_home is None or opts.java_home == '': - opts.java_home = _handle_missing_java_home() + opts.java_home = _handle_lookup_java_home(opts.java_home) + opts.extra_java_homes = _handle_lookup_extra_java_homes(opts.extra_java_homes) if opts.user_home is None or opts.user_home == '': abort('Could not find user home. Use --user-home option or ensure HOME environment variable is set.')