Remove unused file
This commit is contained in:
parent
24d7343fb9
commit
191ae58b73
@ -1,58 +0,0 @@
|
||||
{-# LANGUAGE RecordWildCards #-}
|
||||
|
||||
import Distribution.PackageDescription.Parsec
|
||||
import Distribution.PackageDescription
|
||||
import Distribution.Types.Library
|
||||
import Distribution.Types.ModuleReexport
|
||||
import Distribution.Verbosity
|
||||
import Distribution.ModuleName (components)
|
||||
import System.Environment (getArgs)
|
||||
import System.Directory (createDirectoryIfMissing)
|
||||
import System.FilePath ((</>), (<.>), joinPath, takeDirectory)
|
||||
import Data.List.Split (splitOn)
|
||||
import Data.List (intercalate)
|
||||
|
||||
-- Helper function to convert a module name to a file path
|
||||
convertModuleToPath :: String -> FilePath
|
||||
convertModuleToPath moduleName = "src" </> joinPath (splitOn "." moduleName) <.> "hs"
|
||||
|
||||
-- Function to write a file with the given module structure
|
||||
writeModuleFile :: (String, String) -> IO ()
|
||||
writeModuleFile (originalModule, newModule) = do
|
||||
let content = unlines
|
||||
[ "module " ++ newModule ++ " (module X) where"
|
||||
, ""
|
||||
, "import " ++ originalModule ++ " as X"
|
||||
]
|
||||
filePath = convertModuleToPath newModule
|
||||
createDirectoryIfMissing True (takeDirectory filePath)
|
||||
writeFile filePath content
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
args <- getArgs
|
||||
case args of
|
||||
[fileName] -> do
|
||||
result <- parseCabalFile fileName
|
||||
case result of
|
||||
Left err -> putStrLn $ "Error: " ++ err
|
||||
Right reexports -> mapM_ writeModuleFile reexports
|
||||
_ -> putStrLn "Usage: cabal-file-parser <filename.cabal>"
|
||||
|
||||
parseCabalFile :: FilePath -> IO (Either String [(String, String)])
|
||||
parseCabalFile filePath = do
|
||||
result <- readGenericPackageDescription silent filePath
|
||||
let maybeMainLib = case condLibrary result of
|
||||
Just (CondNode lib _ _) -> Just lib
|
||||
Nothing -> Nothing
|
||||
subLibs = [lib | (_, CondNode lib _ _) <- condSubLibraries result]
|
||||
libs = maybe subLibs (:subLibs) maybeMainLib
|
||||
return $ case libs of
|
||||
(lib:_) -> Right (extractReexportedModules lib)
|
||||
[] -> Left "No library found in .cabal file."
|
||||
|
||||
extractReexportedModules :: Library -> [(String, String)]
|
||||
extractReexportedModules lib =
|
||||
map (\ModuleReexport{..} -> (moduleNameString moduleReexportOriginalName, moduleNameString moduleReexportName)) (reexportedModules lib)
|
||||
|
||||
moduleNameString = intercalate "." . components
|
Loading…
Reference in New Issue
Block a user