packages feed

rts-loader-0.0.0.0: src/Example.hs

import System.Loader.RTS
import System.Process

import Distribution.Verbosity
import Distribution.Package
import Distribution.Simple.Configure

import Distribution.Simple.LocalBuildInfo
import Distribution.Simple.Configure (getPersistBuildConfig)

main :: IO ()
main = do
  lbi <- getPersistBuildConfig "dist"

  let verbosity = normal
      comp = compiler lbi
      pkg_db_stack = withPackageDB lbi
      prog_conf = withPrograms lbi

  pidx <- getInstalledPackages verbosity comp pkg_db_stack prog_conf

  loader_exe <- loaderExecutablePath
  loader_args <- loaderInvocation (SymbolIdentifier "Lib" "main") [] <$>
    (resolveLibraryInfo comp [WayDyn] $
      lookupLibraryInfo pidx $
        PQName $ PackageName "foopkg")

  print =<< rawSystem loader_exe loader_args