diff options
-rw-r--r-- | Interact.hs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Interact.hs b/Interact.hs new file mode 100644 index 000000000..8fa7b5b3b --- /dev/null +++ b/Interact.hs @@ -0,0 +1,30 @@ +-- Get an interactive shell with the right packages to load +-- pandoc modules. + +-- To use: +-- runghc Interact.hs +-- then, +-- :l Text/Pandoc.hs +-- (or whichever package you like) + +-- You must have first done a 'cabal configure' or 'cabal install' + +import System.Process +import Distribution.Simple.LocalBuildInfo +import Distribution.Package +import Distribution.Version +import Data.List (intercalate) + +main = do + setupConfig' <- readFile "dist/setup-config" + let setupConfig = read $ unlines $ drop 1 $ lines setupConfig' + let (Just (ComponentLocalBuildInfo { componentPackageDeps = deps })) = libraryConfig setupConfig + let packageSpecs = map (toPackageSpec . snd) deps + let args = ["-cpp","-i../dist/build/autogen"] ++ concatMap (\p -> ["-package",p]) packageSpecs + print args + ph <- runProcess "ghci" args (Just "src") Nothing Nothing Nothing Nothing + waitForProcess ph + +toPackageSpec pkg = pkgN ++ "-" ++ pkgV + where (PackageName pkgN) = pkgName pkg + pkgV = intercalate "." $ map show $ versionBranch $ pkgVersion pkg |