@@ -37,7 +37,7 @@ import Data.Maybe ( fromMaybe )
3737import Data.List ( unfoldr )
3838import Data.Char ( isAlpha , isAlphaNum )
3939
40- import System.FilePath ( (</>) , (<.>) , takeDirectory , takeExtension )
40+ import System.FilePath ( (</>) , (<.>) , takeBaseName , takeDirectory , takeExtension )
4141import System.Directory ( copyFile , createDirectoryIfMissing , getDirectoryContents )
4242import System.Process ( spawnProcess , readProcess , waitForProcess )
4343import 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