Merge branch 'features/postgresql' into develop
- add spack cd command. - Fix bug in modules hook Conflicts: lib/spack/spack/cmd/stage.py lib/spack/spack/hooks/dotkit.py share/spack/setup-env.bash
This commit is contained in:
@@ -22,20 +22,6 @@
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
|
||||
#
|
||||
# When packages call 'from spack import *', this is what is brought in.
|
||||
#
|
||||
# Spack internal code calls 'import spack' and accesses other
|
||||
# variables (spack.db, paths, etc.) directly.
|
||||
#
|
||||
# TODO: maybe this should be separated out and should go in build_environment.py?
|
||||
# TODO: it's not clear where all the stuff that needs to be included in packages
|
||||
# should live. This file is overloaded for spack core vs. for packages.
|
||||
__all__ = ['Package', 'when', 'provides', 'depends_on', 'version',
|
||||
'patch', 'Version', 'working_dir', 'which', 'Executable',
|
||||
'filter_file', 'change_sed_delimiter']
|
||||
|
||||
import os
|
||||
import tempfile
|
||||
from llnl.util.filesystem import *
|
||||
@@ -140,11 +126,30 @@
|
||||
#
|
||||
sys_type = None
|
||||
|
||||
|
||||
#
|
||||
# Extra imports that should be generally usable from package.py files.
|
||||
# When packages call 'from spack import *', this extra stuff is brought in.
|
||||
#
|
||||
from llnl.util.filesystem import working_dir
|
||||
# Spack internal code should call 'import spack' and accesses other
|
||||
# variables (spack.db, paths, etc.) directly.
|
||||
#
|
||||
# TODO: maybe this should be separated out and should go in build_environment.py?
|
||||
# TODO: it's not clear where all the stuff that needs to be included in packages
|
||||
# should live. This file is overloaded for spack core vs. for packages.
|
||||
#
|
||||
__all__ = ['Package', 'Version', 'when']
|
||||
from spack.package import Package
|
||||
from spack.relations import *
|
||||
from spack.multimethod import when
|
||||
from spack.version import Version
|
||||
from spack.multimethod import when
|
||||
|
||||
import llnl.util.filesystem
|
||||
from llnl.util.filesystem import *
|
||||
__all__ += llnl.util.filesystem.__all__
|
||||
|
||||
import spack.relations
|
||||
from spack.relations import *
|
||||
__all__ += spack.relations.__all__
|
||||
|
||||
import spack.util.executable
|
||||
from spack.util.executable import *
|
||||
__all__ += spack.util.executable.__all__
|
||||
|
@@ -22,8 +22,10 @@
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
import os
|
||||
from external import argparse
|
||||
|
||||
import llnl.util.tty as tty
|
||||
import spack
|
||||
import spack.cmd
|
||||
|
||||
@@ -33,18 +35,45 @@ def setup_parser(subparser):
|
||||
subparser.add_argument(
|
||||
'-n', '--no-checksum', action='store_true', dest='no_checksum',
|
||||
help="Do not check downloaded packages against checksum")
|
||||
|
||||
dir_parser = subparser.add_mutually_exclusive_group()
|
||||
dir_parser.add_argument(
|
||||
'-d', '--print-stage-dir', action='store_const', dest='print_dir',
|
||||
const='print_stage', help="Prints out the stage directory for a spec.")
|
||||
dir_parser.add_argument(
|
||||
'-b', '--print-build-dir', action='store_const', dest='print_dir',
|
||||
const='print_build', help="Prints out the expanded archive path for a spec.")
|
||||
|
||||
subparser.add_argument(
|
||||
'packages', nargs=argparse.REMAINDER, help="specs of packages to stage")
|
||||
'specs', nargs=argparse.REMAINDER, help="specs of packages to stage")
|
||||
|
||||
|
||||
def stage(parser, args):
|
||||
if not args.packages:
|
||||
if not args.specs:
|
||||
tty.die("stage requires at least one package argument")
|
||||
|
||||
if args.no_checksum:
|
||||
spack.do_checksum = False
|
||||
|
||||
specs = spack.cmd.parse_specs(args.packages, concretize=True)
|
||||
for spec in specs:
|
||||
package = spack.db.get(spec)
|
||||
package.do_stage()
|
||||
specs = spack.cmd.parse_specs(args.specs, concretize=True)
|
||||
|
||||
if args.print_dir:
|
||||
if len(specs) != 1:
|
||||
tty.die("--print-stage-dir and --print-build-dir options only take one spec.")
|
||||
|
||||
spec = specs[0]
|
||||
pkg = spack.db.get(spec)
|
||||
|
||||
if args.print_dir == 'print_stage':
|
||||
print pkg.stage.path
|
||||
elif args.print_dir == 'print_build':
|
||||
if not os.listdir(pkg.stage.path):
|
||||
tty.die("Stage directory is empty. Run this first:",
|
||||
"spack stage " + " ".join(args.specs))
|
||||
print pkg.stage.expanded_archive_path
|
||||
|
||||
else:
|
||||
for spec in specs:
|
||||
package = spack.db.get(spec)
|
||||
package.do_stage()
|
||||
|
||||
|
@@ -26,10 +26,10 @@
|
||||
|
||||
|
||||
def post_install(pkg):
|
||||
dk = spack.modules.TclModule(pkg)
|
||||
dk = spack.modules.TclModule(pkg.spec)
|
||||
dk.write()
|
||||
|
||||
|
||||
def post_uninstall(pkg):
|
||||
dk = spack.modules.TclModule(pkg)
|
||||
dk = spack.modules.TclModule(pkg.spec)
|
||||
dk.remove()
|
||||
|
Reference in New Issue
Block a user