Merge pull request #754 from epfl-scitas/fixes/issue_216
fix : module files are deleted on uninstall (fixes #216)
This commit is contained in:
		| @@ -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() | ||||
|   | ||||
| @@ -211,7 +211,11 @@ def use_name(self): | ||||
|     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): | ||||
|   | ||||
| @@ -17,7 +17,7 @@ def _mock_install(self, spec): | ||||
|  | ||||
|     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 @@ def setUp(self): | ||||
|             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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Todd Gamblin
					Todd Gamblin