install_tree, copy_tree can install into existing directory structures (#8289)
Replace use of `shutil.copytree` with `copy_tree` and `install_tree` functions in `llnl.util.filesystem`. - `copy_tree` copies without setting permissions. It should be used to copy files around in the build directory. - `install_tree` copies files and sets permissions. It should be used to copy files into the installation directory. - `install` and `copy` are analogous single-file functions. - add more extensive tests for these functions - update packages to use these functions.
This commit is contained in:

committed by
Todd Gamblin

parent
c0699539d5
commit
73c978ddd9
@@ -23,8 +23,6 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
import os
|
||||
import shutil
|
||||
import glob
|
||||
import llnl.util.tty as tty
|
||||
from spack import *
|
||||
|
||||
@@ -101,15 +99,7 @@ def install(self, spec, prefix):
|
||||
with working_dir('src'):
|
||||
bash('{0}.bash'.format('all' if self.run_tests else 'make'))
|
||||
|
||||
try:
|
||||
os.makedirs(prefix)
|
||||
except OSError:
|
||||
pass
|
||||
for f in glob.glob('*'):
|
||||
if os.path.isdir(f):
|
||||
shutil.copytree(f, os.path.join(prefix, f))
|
||||
else:
|
||||
shutil.copy2(f, os.path.join(prefix, f))
|
||||
install_tree('.', prefix)
|
||||
|
||||
def setup_environment(self, spack_env, run_env):
|
||||
spack_env.set('GOROOT_FINAL', self.spec.prefix)
|
||||
@@ -123,10 +113,9 @@ def setup_dependent_package(self, module, dependent_spec):
|
||||
|
||||
In most cases, extensions will only need to set GOPATH and use go::
|
||||
|
||||
env = os.environ
|
||||
env['GOPATH'] = self.source_path + ':' + env['GOPATH']
|
||||
go('get', '<package>', env=env)
|
||||
shutil.copytree('bin', os.path.join(prefix, '/bin'))
|
||||
install_tree('bin', prefix.bin)
|
||||
"""
|
||||
# Add a go command/compiler for extensions
|
||||
module.go = self.spec['go'].command
|
||||
|
Reference in New Issue
Block a user