Skip to content

Commit 34ea886

Browse files
committed
write mod.rs files for sub-modules
1 parent f0ab8d0 commit 34ea886

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/Language/Rust/Inline/Internal.hs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import Data.Maybe ( fromMaybe )
3737
import Data.List ( unfoldr )
3838
import Data.Char ( isAlpha, isAlphaNum )
3939

40-
import System.FilePath ( (</>), (<.>), takeDirectory, takeExtension )
40+
import System.FilePath ( (</>), (<.>), takeBaseName, takeDirectory, takeExtension )
4141
import System.Directory ( copyFile, createDirectoryIfMissing, getDirectoryContents )
4242
import System.Process ( spawnProcess, readProcess, waitForProcess )
4343
import System.Exit ( ExitCode(..) )
@@ -249,6 +249,14 @@ fileFinalizer = do
249249
let dir = ".inline-rust" </> pkg
250250
thisFile = foldr1 (</>) mods
251251

252+
let modPaths = tail $ (dir </>) <$> scanl1 (</>) mods
253+
forM_ modPaths $ \modPath -> runIO $ do
254+
let modName = takeBaseName modPath
255+
modDir = takeDirectory modPath
256+
modFile = modDir </> "mod.rs"
257+
createDirectoryIfMissing True modDir
258+
appendFile modFile $ "pub mod " <> modName <> ";\n"
259+
252260
-- Figure out what we are putting into this file
253261
Just cb <- getQ
254262
Just (Context (_,_,impls)) <- getQ

0 commit comments

Comments
 (0)