module Main (main) where
import System.IO
import System.Directory
import Configure.Write (write)
main = do
putStrLn "Manual.hs revision #01, 08 Jun 2011"
putStrLn ""
x1 <- doesDirectoryExist "Include"
if x1 then return () else createDirectory "Include"
x2 <- doesFileExist "Include/Platform.h"
if x2 then msg2 else msg1
msg1 = do
putStrLn "This program allows you to manually specify the build platform"
putStrLn "values that will be returned from the System.Platform module."
putStrLn "Usually the configure script will auto-detect these; by specifying"
putStrLn "these values manually, you will disable auto-detection. Are you"
putStrLn "sure you want to do that?"
yes_no prompt_OS (putStrLn "Exit.")
msg2 = do
putStrLn "This program allows you to manually specify the build platform"
putStrLn "values that will be returned from the System.Platform module."
putStrLn "The data in question has already been set; if you proceed, this"
putStrLn "data will be overwritten. Are you sure you want to do that?"
yes_no prompt_OS (putStrLn "Exit.")
yes_no yes no = do
putStr "(Y/N)? "
hFlush stdout
l <- getLine
case l of
('y':_) -> yes
('Y':_) -> yes
_ -> no
prompt_OS = do
putStrLn ""
putStrLn "Select OS type:"
putStrLn "1 = Unix"
putStrLn "2 = Microsoft Windows"
putStr "(1/2)? "
l <- getLine
case l of
"1" -> prompt_CName ("Unix")
"2" -> prompt_CName ("MS_Windows")
_ -> do
putStrLn "Invalid response."
prompt_OS
prompt_CName os = do
putStrLn ""
putStrLn "Enter compiler name string (e.g., \"GHC\", \"JHC\", etc.)"
putStrLn "Your text will be used verbatim."
putStr "Name> "
cname <- getLine
prompt_CVer os cname
prompt_CVer os cname = do
putStrLn ""
putStrLn "Enter compiler version string (e.g., \"6.6\", \"7.0.2\", etc.)"
putStrLn "Your text will be used verbatim."
putStrLn "Version> "
cver <- getLine
putStrLn ""
write (os, cname, cver)