Replace previous bash command to new one (#7005)
Prevents infinite recursion caused by sourcing `setup-env.sh` in bashrc
This commit is contained in:
parent
8a4e762bec
commit
298a55b28f
@ -115,24 +115,13 @@ def _default_target_from_env(self):
|
||||
A bash subshell is launched with a wiped environment and the list of
|
||||
loaded modules is parsed for the first acceptable CrayPE target.
|
||||
'''
|
||||
# Based on the incantation:
|
||||
# echo "$(env - USER=$USER /bin/bash -l -c 'module list -lt')"
|
||||
# env -i /bin/bash -lc echo $CRAY_CPU_TARGET 2> /dev/null
|
||||
if getattr(self, 'default', None) is None:
|
||||
env = which('env')
|
||||
env.add_default_arg('-')
|
||||
# CAUTION - $USER is generally needed in the sub-environment.
|
||||
# There may be other variables needed for general success.
|
||||
output = env('USER=%s' % os.environ['USER'],
|
||||
'HOME=%s' % os.environ['HOME'],
|
||||
'/bin/bash', '--noprofile', '--norc', '-c',
|
||||
'. /etc/profile; module list -lt',
|
||||
output=str, error=str)
|
||||
self._defmods = _get_modules_in_modulecmd_output(output)
|
||||
targets = []
|
||||
_fill_craype_targets_from_modules(targets, self._defmods)
|
||||
self.default = targets[0] if targets else None
|
||||
tty.debug("Found default modules:",
|
||||
*[" %s" % mod for mod in self._defmods])
|
||||
output = env("-i", "/bin/bash", "-lc", "echo $CRAY_CPU_TARGET",
|
||||
output=str, error=os.devnull)
|
||||
self.default = output.strip()
|
||||
tty.debug("Found default module:%s" % self.default)
|
||||
return self.default
|
||||
|
||||
def _avail_targets(self):
|
||||
|
Loading…
Reference in New Issue
Block a user