8.1.4 : Le script générique



Voici le script, singularity_run_fedora38.sh, que nous appelerons pour compiler notre projet :
1
#!/bin/bash


Commençons par le prefix de notre programme (si on considère que nous lancerons nos jobs depuis les sources) :
1
PREFIX=${PWD}


On affiche sur quelle machine on tourne :
1
echo "Used machine is $(uname -a)"


On définit un dossier build unique pour que plusieurs jobs ne se marchent pas dessus :
1
2
3
4
5
6
7
BUILD_DIR="${PREFIX}/build_cmake_$(uname -n)"

if [ -d ${BUILD_DIR} ]
then
    	echo "Remove existing directory $BUILD_DIR"
        rm -fr ${BUILD_DIR}
fi


Créons notre dossier de compilation :
1
2
mkdir -p ${BUILD_DIR}
echo "BUILD_DIR = '${BUILD_DIR}'"


Définition notre image Apptainer :
1
CONTAINER_IMAGE="./fedora38.sif"


On appelle le script d'installation que nous avons définit dans la section 8.1.3 :
1
singularity run --bind $PREFIX:/source --bind ${BUILD_DIR}:/build ${CONTAINER_IMAGE} /source/install_singularity.sh


Le script singularity_run_fedora38.sh complet :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
PREFIX=${PWD}

echo "Used machine is $(uname -a)"
BUILD_DIR="${PREFIX}/build_cmake_$(uname -n)"

if [ -d ${BUILD_DIR} ]
then
    	echo "Remove existing directory $BUILD_DIR"
        rm -fr ${BUILD_DIR}
fi
mkdir -p ${BUILD_DIR}
echo "BUILD_DIR = '${BUILD_DIR}'"
CONTAINER_IMAGE="./fedora38.sif"

singularity run --bind $PREFIX:/source --bind ${BUILD_DIR}:/build ${CONTAINER_IMAGE} /source/install_singularity.sh


Le fichier singularity_run_fedora38.sh est disponible ici.