aboutsummaryrefslogtreecommitdiffstats
path: root/build/scripts/setup_java_tmpdir.py
blob: 65f59fc0eebcd1b4c656c239bbabaeb985dca09a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import os 
import sys 
import platform 
import subprocess 
 
 
def fix_tmpdir(cmd): 
    if not cmd: 
        return cmd 
    java_id, option_name = None, None 
    for i, java in enumerate(cmd): 
        if java.endswith('java') or java.endswith('java.exe'): 
            java_id = i 
            option_name = '-Djava.io.tmpdir=' 
            break 
        if java.endswith('javac') or java.endswith('javac.exe'): 
            java_id = i 
            option_name = '-J-Djava.io.tmpdir=' 
            break 
    if java_id is None: 
        return cmd 
    for arg in cmd[java_id:]: 
        if arg.startswith(option_name): 
            return cmd 
    tmpdir = os.environ.get('TMPDIR') or os.environ.get('TEMPDIR') 
    if not tmpdir: 
        return cmd 
    return cmd[:java_id + 1] + ['{}{}'.format(option_name, tmpdir)] + cmd[java_id + 1:] 
 
 
def just_do_it(): 
    args = fix_tmpdir(sys.argv[1:]) 
    if platform.system() == 'Windows': 
        sys.exit(subprocess.Popen(args).wait()) 
    else: 
        os.execv(args[0], args) 
 
 
if __name__ == '__main__': 
    just_do_it()