diff options
author | Todd Gamblin <tgamblin@llnl.gov> | 2016-04-06 16:03:11 -0700 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2016-04-06 16:03:11 -0700 |
commit | feee268970affe5db73af4554e43dcd0d078cbad (patch) | |
tree | 5618d8f4d7f263f6a4e7628d75575cd05428f8dd /lib | |
parent | cac819766e014085b3ceeb55f7b49a1fe891b51c (diff) | |
parent | 400166398239be0880c025672dd3e5eb6c8bac7f (diff) | |
download | spack-feee268970affe5db73af4554e43dcd0d078cbad.tar.gz spack-feee268970affe5db73af4554e43dcd0d078cbad.tar.bz2 spack-feee268970affe5db73af4554e43dcd0d078cbad.tar.xz spack-feee268970affe5db73af4554e43dcd0d078cbad.zip |
Merge pull request #754 from epfl-scitas/fixes/issue_216
fix : module files are deleted on uninstall (fixes #216)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/spack/spack/cmd/module.py | 10 | ||||
-rw-r--r-- | lib/spack/spack/modules.py | 6 | ||||
-rw-r--r-- | lib/spack/spack/test/mock_database.py | 4 |
3 files changed, 10 insertions, 10 deletions
diff --git a/lib/spack/spack/cmd/module.py b/lib/spack/spack/cmd/module.py index 315d9fc926..a67f5c0c13 100644 --- a/lib/spack/spack/cmd/module.py +++ b/lib/spack/spack/cmd/module.py @@ -22,21 +22,16 @@ # along with this program; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## -import sys import os import shutil -import argparse +import sys import llnl.util.tty as tty -from llnl.util.lang import partition_list -from llnl.util.filesystem import mkdirp - import spack.cmd +from llnl.util.filesystem import mkdirp from spack.modules import module_types from spack.util.string import * -from spack.spec import Spec - description ="Manipulate modules and dotkits." @@ -98,7 +93,6 @@ def module_refresh(): cls(spec).write() - def module(parser, args): if args.module_command == 'refresh': module_refresh() diff --git a/lib/spack/spack/modules.py b/lib/spack/spack/modules.py index d797af287d..61624fbd70 100644 --- a/lib/spack/spack/modules.py +++ b/lib/spack/spack/modules.py @@ -211,7 +211,11 @@ class EnvModule(object): def remove(self): mod_file = self.file_name if os.path.exists(mod_file): - shutil.rmtree(mod_file, ignore_errors=True) + try: + os.remove(mod_file) # Remove the module file + os.removedirs(os.path.dirname(mod_file)) # Remove all the empty directories from the leaf up + except OSError: + pass # removedirs throws OSError on first non-empty directory found class Dotkit(EnvModule): diff --git a/lib/spack/spack/test/mock_database.py b/lib/spack/spack/test/mock_database.py index 6fd05439bf..82ba59fc48 100644 --- a/lib/spack/spack/test/mock_database.py +++ b/lib/spack/spack/test/mock_database.py @@ -17,7 +17,7 @@ class MockDatabase(MockPackagesTest): def _mock_remove(self, spec): specs = spack.installed_db.query(spec) - assert(len(specs) == 1) + assert len(specs) == 1 spec = specs[0] spec.package.do_uninstall(spec) @@ -71,6 +71,8 @@ class MockDatabase(MockPackagesTest): self._mock_install('mpileaks ^zmpi') def tearDown(self): + for spec in spack.installed_db.query(): + spec.package.do_uninstall(spec) super(MockDatabase, self).tearDown() shutil.rmtree(self.install_path) spack.install_path = self.spack_install_path |