From 4dfffa52ccfaca98e85724dbf2c5f8a4e6bf5ea2 Mon Sep 17 00:00:00 2001 From: Dusty Phillips Date: Tue, 27 Aug 2024 13:16:27 -0300 Subject: [PATCH] Support files in nested folders --- src/compiler/program.gleam | 3 ++- src/output.gleam | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/compiler/program.gleam b/src/compiler/program.gleam index d746a62..5d8489c 100644 --- a/src/compiler/program.gleam +++ b/src/compiler/program.gleam @@ -13,6 +13,7 @@ import gleam/list import gleam/option import gleam/result import gleam/set +import gleam/string import simplifile pub type GleamProgram { @@ -150,7 +151,7 @@ fn identify_python_external_attribute( glance.Attribute( "external", [glance.Variable("python"), glance.String(module), ..], - ) -> Ok(module <> ".py") + ) -> Ok(string.replace(module, ".", "/") <> ".py") _ -> Error(Nil) } } diff --git a/src/output.gleam b/src/output.gleam index 664fd02..b00522e 100644 --- a/src/output.gleam +++ b/src/output.gleam @@ -79,7 +79,9 @@ pub fn copy_externals( Ok(Nil) -> { let src = filepath.join(source_directory, file) let dst = filepath.join(build_directory, file) - simplifile.copy_file(src, dst) + let dst_dir = filepath.directory_name(dst) + simplifile.create_directory_all(dst_dir) + |> result.try(fn(__main__) { simplifile.copy_file(src, dst) }) |> result.map_error(errors.CopyFileError(src, dst, _)) } Error(error) -> Error(error)