#!/usr/bin/env sh set -o errexit set -o pipefail set -o nounset source stack_env.sh mkdir -p ${STACK_LOCATION} cd ${STACK_LOCATION} echo "Setting up spack" if [ ! -d spack/.git ]; then git clone https://github.com/spack/spack.git else git -C spack fetch # git -C spack pull fi git -C spack checkout $SPACK_VERSION #cat > spack/etc/spack/config.yaml << EOF #config: # install_tree: # root: ${STACK_LOCATION}/spack/opt/spack #EOF echo "Adding spack system config file" echo mkdir -p ${SPACK_SYSTEM_CONFIG_PATH} mkdir -p ${SPACK_SYSTEM_CONFIG_PATH} EXTERNAL_REPOS=$(jq -r '.spack.repos | keys[]' ${STACK_CONFIG}) for file in mirrors.yaml packages.yaml concretizer.yaml config.yaml spack.yaml do if [ -e "${STACK_CONFIG_PATH}/${file}" ]; then echo "Copying ${STACK_CONFIG_PATH}/${file} to ${SPACK_SYSTEM_CONFIG_PATH}" cp "${STACK_CONFIG_PATH}/${file}" ${SPACK_SYSTEM_CONFIG_PATH} fi done echo "Setting up extra repos" spack_external_repos=external_repos mkdir -p ${spack_external_repos} echo "repos:" > ${SPACK_SYSTEM_CONFIG_PATH}/repos.yaml for repo in ${EXTERNAL_REPOS} do repo_branch=$(jq -r ".spack.repos.\"${repo}\".branch" ${STACK_CONFIG}) echo " - ${spack_external_repos}/${repo}" echo " - ${STACK_LOCATION}/${spack_external_repos}/${repo}" >> ${SPACK_SYSTEM_CONFIG_PATH}/repos.yaml if [ ! -d ${spack_external_repos}/${repo} ]; then echo "Cloning repo: ${repo}" url_branch=$(jq -r ".spack.repos.\"${repo}\".url" ${STACK_CONFIG}) git clone -b ${repo_branch} ${url_branch} ${spack_external_repos}/${repo} else echo "Update repo: ${repo}" git -C ${spack_external_repos}/$repo fetch git -C ${spack_external_repos}/$repo checkout ${repo_branch} git -C ${spack_external_repos}/$repo pull fi done echo "Setting up buildcache" spack/bin/spack gpg trust \ $GPG_PRIVATE_KEY if [ ! -d /buildcache/build_cache ]; then spack/bin/spack gpg publish \ -d /buildcache fi if ! spack/bin/spack mirror list | grep buildcache; then spack/bin/spack mirror add \ --type binary \ --scope system \ buildcache file:///buildcache fi spack/bin/spack buildcache keys \ --install \ --trust #spack/bin/spack buildcache update-index /buildcache