aboutsummaryrefslogtreecommitdiff
path: root/Interact.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Interact.hs')
-rw-r--r--Interact.hs30
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