native-0.1.0.0: src/SetupNative.hs
module SetupNative where
import System.Directory
import System.FilePath
import PowerShell
import Control.Monad
dirs :: [String]
dirs = ["bin", "include", "scripts", "temp"]
setup :: IO ()
setup = do
dataDir <- getAppUserDataDirectory "native-libs"
mapM_ (\d -> createDirectoryIfMissing True (dataDir </> d)) dirs
let binPath = dataDir </> "bin"
includePath = dataDir </> "include"
putStrLn $ "Adding " ++ binPath ++ " to the LIBRARY_PATH environment variable and"
putStrLn $ "adding " ++ includePath ++ " to the CPATH environment variable."
setupEnvVars
putStrLn $ "It's recommended that you also add " ++ binPath ++ " to your PATH variable."
putStrLn "Would you like this to be done for you? (y/n)"
shouldAddPath <- getYN
when shouldAddPath addPath
getYN :: IO Bool
getYN = do
line <- getLine
case line of
"y" -> return True
"Y" -> return True
"n" -> return False
"N" -> return False
_ -> putStrLn "Please answer with y or n." >> getYN