module Idris.Info.Show where

import Idris.Info

import System.Exit

showIdrisCRTSDir :: IO ()
showIdrisCRTSDir :: IO ()
showIdrisCRTSDir = do
  ldir <- IO String
getIdrisCRTSDir
  putStrLn ldir

showExitIdrisCRTSDir :: IO ()
showExitIdrisCRTSDir :: IO ()
showExitIdrisCRTSDir = do
  IO ()
showIdrisCRTSDir
  IO ()
forall a. IO a
exitSuccess

showIdrisJSRTSDir :: IO ()
showIdrisJSRTSDir :: IO ()
showIdrisJSRTSDir = do
  ldir <- IO String
getIdrisJSRTSDir
  putStrLn ldir

showExitIdrisJSRTSDir :: IO ()
showExitIdrisJSRTSDir :: IO ()
showExitIdrisJSRTSDir = do
  IO ()
showIdrisJSRTSDir
  IO ()
forall a. IO a
exitSuccess

showIdrisFlagsLibs :: IO ()
showIdrisFlagsLibs :: IO ()
showIdrisFlagsLibs = do
  libFlags <- IO [String]
getIdrisFlagsLib
  putStrLn $ unwords libFlags

showExitIdrisFlagsLibs :: IO ()
showExitIdrisFlagsLibs :: IO ()
showExitIdrisFlagsLibs = do
  IO ()
showIdrisFlagsLibs
  IO ()
forall a. IO a
exitSuccess

showIdrisDataDir :: IO ()
showIdrisDataDir :: IO ()
showIdrisDataDir = do
  ldir <- IO String
getIdrisDataDir
  putStrLn ldir

showExitIdrisDataDir :: IO ()
showExitIdrisDataDir :: IO ()
showExitIdrisDataDir = do
  IO ()
showIdrisDataDir
  IO ()
forall a. IO a
exitSuccess

showIdrisLibDir :: IO ()
showIdrisLibDir :: IO ()
showIdrisLibDir = do
  ldir <- IO String
getIdrisLibDir
  putStrLn ldir

showExitIdrisLibDir :: IO ()
showExitIdrisLibDir :: IO ()
showExitIdrisLibDir = do
  IO ()
showIdrisLibDir
  IO ()
forall a. IO a
exitSuccess

showIdrisDocDir :: IO ()
showIdrisDocDir :: IO ()
showIdrisDocDir = do
  ldir <- IO String
getIdrisDocDir
  putStrLn ldir

showExitIdrisDocDir :: IO ()
showExitIdrisDocDir :: IO ()
showExitIdrisDocDir = do
  IO ()
showIdrisDocDir
  IO ()
forall a. IO a
exitSuccess

showIdrisFlagsInc :: IO ()
showIdrisFlagsInc :: IO ()
showIdrisFlagsInc = do
  incFlags <- IO [String]
getIdrisFlagsInc
  putStrLn $ unwords incFlags

showExitIdrisFlagsInc :: IO ()
showExitIdrisFlagsInc :: IO ()
showExitIdrisFlagsInc = do
  IO ()
showIdrisFlagsInc
  IO ()
forall a. IO a
exitSuccess

-- | List idris packages installed
showIdrisInstalledPackages :: IO ()
showIdrisInstalledPackages :: IO ()
showIdrisInstalledPackages = do
  ipkgs <- IO [String]
getIdrisInstalledPackages
  mapM_ putStrLn ipkgs

showExitIdrisInstalledPackages :: IO ()
showExitIdrisInstalledPackages :: IO ()
showExitIdrisInstalledPackages = do
  IO ()
showIdrisInstalledPackages
  IO ()
forall a. IO a
exitSuccess

showIdrisLoggingCategories :: IO ()
showIdrisLoggingCategories :: IO ()
showIdrisLoggingCategories = do
  cs <- IO [String]
getIdrisLoggingCategories
  mapM_ putStrLn cs

showExitIdrisLoggingCategories :: IO ()
showExitIdrisLoggingCategories :: IO ()
showExitIdrisLoggingCategories = do
  IO ()
showIdrisLoggingCategories
  IO ()
forall a. IO a
exitSuccess

showIdrisInfo :: IO ()
showIdrisInfo :: IO ()
showIdrisInfo = do
  String -> IO ()
putStrLn (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ [String] -> String
unwords [String
"Idris", String
getIdrisVersion]

  ps <- IO [String]
getIdrisInstalledPackages
  putStrLn $ unwords (["Installed Packages:"] ++ ps)

  cs <- getIdrisLoggingCategories
  putStrLn $ unwords (["Logging Categories:"] ++ cs)

  putStrLn "Paths:"
  ldir <- getIdrisLibDir
  udir <- getIdrisUserDataDir
  ddir <- getIdrisDocDir
  idir <- getIdrisDataDir
  crdir <- getIdrisCRTSDir
  jrdir <- getIdrisJSRTSDir
  putStrLn $ unwords ["-", "Data Dir:", idir]
  putStrLn $ unwords ["-", "Library Dir:", ldir]
  putStrLn $ unwords ["-", "C RTS Dir:", crdir]
  putStrLn $ unwords ["-", "JS RTS Dir:", jrdir]
  putStrLn $ unwords ["-", "User Dir:",    udir]
  putStrLn $ unwords ["-", "Documentation Dir:", ddir]

  putStrLn "Flags:"
  lflag <- getIdrisFlagsLib
  iflag <- getIdrisFlagsInc
  eflag <- getIdrisFlagsEnv
  putStrLn $ unwords (["-", "Libraries:", show lflag])
  putStrLn $ unwords (["-", "Includes:",  show iflag])
  putStrLn $ unwords (["-", "Env:",       show eflag])

  cc <- getIdrisCC
  putStrLn $ unwords ["CC:", cc]

  putStrLn "Files:"
  hfile   <- getIdrisHistoryFile
  iscript <- getIdrisInitScript
  putStrLn $ unwords (["-", "History File:",    hfile])
  putStrLn $ unwords (["-", "REPL Init Script", iscript])


showExitIdrisInfo :: IO ()
showExitIdrisInfo :: IO ()
showExitIdrisInfo = do
  IO ()
showIdrisInfo
  IO ()
forall a. IO a
exitSuccess