Use the stage names as inputs

This commit is contained in:
Rodrigo Arias 2020-10-16 15:53:28 +02:00
parent 2680dcb66f
commit ede25b6736
2 changed files with 12 additions and 8 deletions

View File

@ -10,14 +10,14 @@
{
sshHost
, prefix
, experiment
, experimentStage
, trebuchetStage
, garlicTemp
}:
with garlicTools;
let
experimentStage = getExperimentStage experiment;
experimentName = baseNameOf (toString experimentStage);
in
stdenv.mkDerivation {
@ -33,11 +33,15 @@ in
mkdir -p ${garlicTemp}
export PATH=${rsync}/bin:${openssh}/bin:${nix}/bin
rsync -av \
--copy-links \
--include='*/*/*.log' --include='*/*/*.json' --exclude='*/*/*' \
'${sshHost}:${prefix}/${experimentName}' ${garlicTemp}
res=\$(nix-build -E '(with import ./default.nix; garlic.getExpResult \
{experiment = "${experiment}"; garlicTemp = "${garlicTemp}"; })')
res=\$(nix-build -E '(with import ./default.nix; garlic.getExpResult { \
experimentStage = "${experimentStage}"; \
trebuchetStage = "${trebuchetStage}"; \
garlicTemp = "${garlicTemp}"; \
})')
echo "The results for experiment ${experimentName} are at:"
echo " \$res"

View File

@ -5,20 +5,20 @@
}:
{
experiment
trebuchetStage
, experimentStage
, garlicTemp
}:
with garlicTools;
let
experimentStage = getExperimentStage experiment;
experimentName = baseNameOf (toString experimentStage);
fetcher = fetchExperiment {
sshHost = "mn1";
prefix = "/gpfs/projects/\\\$(id -gn)/\\\$(id -un)/garlic-out";
garlicTemp = "/tmp/garlic-temp";
inherit experiment;
inherit experimentStage trebuchetStage;
};
in
stdenv.mkDerivation {
@ -33,7 +33,7 @@ in
if [ ! -e $expPath ]; then
echo "The experiment ${experimentName} is missing in ${garlicTemp}."
echo "Please fetch it and try again."
echo "You can execute ${experiment} to run the experiment."
echo "You can execute ${trebuchetStage} to run the experiment."
echo "And then ${fetcher} to get the results."
exit 1
fi