Julia: copy src files

This commit is contained in:
Eric Hanson 2025-07-21 18:12:52 +02:00
parent a1d7bed86f
commit 30382b9200
2 changed files with 46 additions and 0 deletions

View file

@ -99,6 +99,14 @@ def install_environment(
shutil.copy(manifest_file, envdir) shutil.copy(manifest_file, envdir)
break break
# copy `src` files if they exist
src_dir = prefix.path('src')
if os.path.isdir(src_dir):
shutil.copytree(
src_dir, os.path.join(envdir, 'src'),
dirs_exist_ok=True,
)
# Julia code to instantiate the hook environment # Julia code to instantiate the hook environment
julia_code = """ julia_code = """
@assert length(ARGS) > 0 @assert length(ARGS) > 0

View file

@ -95,3 +95,41 @@ def test_julia_repo_local(tmp_path):
env_dir, julia, 'local.jl --local-arg1 --local-arg2', env_dir, julia, 'local.jl --local-arg1 --local-arg2',
deps=deps, is_local=True, deps=deps, is_local=True,
) == expected ) == expected
def _make_src_hook(tmp_path, pkg_code, script_code):
# here we setup a hook with a src dir and a script dir
src_dir = tmp_path.joinpath('src')
src_dir.mkdir()
src_dir.joinpath('ExamplePkg.jl').write_text(pkg_code)
script_dir = tmp_path.joinpath('scripts')
script_dir.mkdir()
script_dir.joinpath('main.jl').write_text(script_code)
tmp_path.joinpath('Project.toml').write_text(
'name = "ExamplePkg"\n'
'uuid = "df230c44-b485-4b6a-bafb-763c50abe554"\n'
'[deps]\n'
'Example = "7876af07-990d-54b4-ab0e-23690620f79a"\n',
)
def test_julia_hook_src(tmp_path):
pkg_code = """
module ExamplePkg
using Example
export main
function main()
println("Hello, world!")
end
end
"""
script_code = """
using ExamplePkg
main()
"""
_make_src_hook(tmp_path, pkg_code, script_code)
expected = (0, b'Hello, world!\n')
assert run_language(tmp_path, julia, 'scripts/main.jl') == expected