1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-11-17 19:21:04 +00:00

singularity-tools: make runscript modifiable (#334826)

This commit is contained in:
Philip Taron 2024-08-30 15:57:50 -07:00 committed by GitHub
commit ef0bb1fc69
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -5,8 +5,9 @@
runCommand,
vmTools,
writeClosure,
writers,
writeDirectReferencesToFile,
writeScript,
writeStringReferencesToFile,
# Native build inputs
buildPackages,
e2fsprogs,
@ -69,10 +70,16 @@ lib.makeExtensible (final: {
set -e
${runAsRoot}
'';
runScriptFile = writers.writeBash "run-script.sh" ''
runScriptFile = writeScript "run-script.sh" ''
#!/bin/sh
set -e
${runScript}
'';
runScriptReferences =
if builtins ? getContext then
lib.splitString "\n" (writeStringReferencesToFile runScriptFile.text).text
else
[ (writeDirectReferencesToFile runScriptFile) ];
result = vmTools.runInLinuxVM (
runCommand "${projectName}-image-${name}.sif"
{
@ -82,13 +89,7 @@ lib.makeExtensible (final: {
util-linux
];
strictDeps = true;
layerClosure = writeClosure (
[
bashInteractive
runScriptFile
]
++ contents
);
layerClosure = writeClosure ([ bashInteractive ] ++ runScriptReferences ++ contents);
preVM = vmTools.createEmptyImage {
size = diskSize;
fullName = "${projectName}-run-disk";
@ -134,12 +135,14 @@ lib.makeExtensible (final: {
done
done
# Create runScript and link shell
# Link /bin/sh
if [ ! -e bin/sh ]; then
ln -s ${lib.getExe bashInteractive} bin/sh
fi
mkdir -p .singularity.d
ln -s ${runScriptFile} .singularity.d/runscript
# Create runscript
cp "${runScriptFile}" .singularity.d/runscript
# Fill out .singularity.d
mkdir -p .singularity.d/env