12345678910111213141516171819202122232425262728293031323334353637383940 |
- 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()
|