import System
import System.File
import System.Info
import Data.List1
import Data.String

windowsPath : String -> String
windowsPath path =
    let replaceSlashes : List Char -> List Char
        replaceSlashes [] = []
        replaceSlashes ('/' :: cs) = '\\' :: replaceSlashes cs
        replaceSlashes (c :: cs) = c :: replaceSlashes cs
    in
        pack $ replaceSlashes (unpack path)

main : IO ()
main = do
    Just cmd <- getEnv "POPEN_CMD"
        | Nothing => putStrLn "POPEN_CMD env var not set"
    let cmd = if isWindows then windowsPath cmd else cmd
    Right fh <- popen cmd Read
        | Left err => printLn err
    putStrLn "opened"
    Right output <- fGetLine fh
        | Left err => printLn err
    pclose fh
    putStrLn "closed"
    let (idris2 ::: _) = split ((==) ',') output
        | _ => printLn "Unexpected result"
    putStrLn idris2
