Skip to content

Commit 0ace53a

Browse files
committed
Refine docker subdir fix to minimal mkconcore line changes
1 parent 24ebe32 commit 0ace53a

2 files changed

Lines changed: 19 additions & 21 deletions

File tree

mkconcore.py

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -789,33 +789,30 @@ def cleanup_script_files():
789789
containername,sourcecode = nodes_dict[node].split(':')
790790
if len(sourcecode)!=0 and sourcecode.find(".")!=-1: #3/28/21
791791
dockername,langext = sourcecode.rsplit(".", 1)
792-
# dockername can include subdirectories (e.g. subdir/script).
793-
# Compute a stable prefix to reach study root from docker build dir.
794-
docker_subpath_depth = dockername.count("/") + dockername.count("\\")
795-
docker_rel_prefix = "../" * (docker_subpath_depth + 1)
796-
fbuild.write("mkdir docker-"+dockername+"\n")
797-
fbuild.write("cd docker-"+dockername+"\n")
798-
fbuild.write("cp "+docker_rel_prefix+"src/Dockerfile."+dockername+" Dockerfile\n")
792+
dockerbuilddir = "docker-"+dockername.replace("/", "__").replace("\\", "__")
793+
fbuild.write("mkdir "+dockerbuilddir+"\n")
794+
fbuild.write("cd "+dockerbuilddir+"\n")
795+
fbuild.write("cp ../src/Dockerfile."+dockername+" Dockerfile\n")
799796
#copy sourcefiles from ./src into corresponding directories
800-
fbuild.write("cp "+docker_rel_prefix+"src/"+sourcecode+" .\n")
797+
fbuild.write("cp ../src/"+sourcecode+" .\n")
801798
if langext == "py": #4/29/21
802-
fbuild.write("cp "+docker_rel_prefix+"src/concore.py .\n")
799+
fbuild.write("cp ../src/concore.py .\n")
803800
elif langext == "cpp": #6/22/21
804-
fbuild.write("cp "+docker_rel_prefix+"src/concore.hpp .\n")
801+
fbuild.write("cp ../src/concore.hpp .\n")
805802
elif langext == "v": #6/25/21
806-
fbuild.write("cp "+docker_rel_prefix+"src/concore.v .\n")
803+
fbuild.write("cp ../src/concore.v .\n")
807804
if langext == "m":
808-
fbuild.write("cp "+docker_rel_prefix+"src/concore_*.m .\n")
809-
fbuild.write("cp "+docker_rel_prefix+"src/import_concore.m .\n")
805+
fbuild.write("cp ../src/concore_*.m .\n")
806+
fbuild.write("cp ../src/import_concore.m .\n")
810807
if langext == "sh": #5/27/21
811808
fbuild.write("chmod u+x "+sourcecode+"\n")
812-
fbuild.write("cp "+docker_rel_prefix+"src/"+dockername+".iport concore.iport\n")
813-
fbuild.write("cp "+docker_rel_prefix+"src/"+dockername+".oport concore.oport\n")
809+
fbuild.write("cp ../src/"+dockername+".iport concore.iport\n")
810+
fbuild.write("cp ../src/"+dockername+".oport concore.oport\n")
814811
#include data files in here if they exist
815812
if os.path.isdir(sourcedir+"/"+dockername+".dir"):
816-
fbuild.write("cp -r "+docker_rel_prefix+"src/"+dockername+".dir/* .\n")
813+
fbuild.write("cp -r ../src/"+dockername+".dir/* .\n")
817814
fbuild.write(DOCKEREXE+" build -t docker-"+dockername+" .\n")
818-
fbuild.write("cd "+docker_rel_prefix+"\n")
815+
fbuild.write("cd ..\n")
819816

820817
fbuild.close()
821818

tests/test_cli.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,11 @@ def test_run_command_docker_subdir_source_build_paths(self):
177177
self.assertEqual(result.exit_code, 0)
178178

179179
build_script = Path('out/build').read_text()
180-
self.assertIn('cp ../../src/Dockerfile.subdir/script Dockerfile', build_script)
181-
self.assertIn('cp ../../src/subdir/script.py .', build_script)
182-
self.assertIn('cp ../../src/subdir/script.iport concore.iport', build_script)
183-
self.assertIn('cd ../../', build_script)
180+
self.assertIn('mkdir docker-subdir__script', build_script)
181+
self.assertIn('cp ../src/Dockerfile.subdir/script Dockerfile', build_script)
182+
self.assertIn('cp ../src/subdir/script.py .', build_script)
183+
self.assertIn('cp ../src/subdir/script.iport concore.iport', build_script)
184+
self.assertIn('cd ..', build_script)
184185

185186
def test_run_command_shared_source_specialization_merges_edge_params(self):
186187
with self.runner.isolated_filesystem(temp_dir=self.temp_dir):

0 commit comments

Comments
 (0)