要启动我的Yesod应用程序,我需要提供一个应用程序环境参数,例如:
./ myYesodApp Production
有没有办法使用Yesod启动应用程序并将环境设置为环境变量或配置设置?所以我可以简单地打电话:
./ myYesodApp
我需要能够这样做,所以我可以使用mod_fastcgi运行我的Yesod应用程序。
或者有没有办法为FastCgiWrapper提供这个参数?
我的main.hs看起来像这样:
import Prelude (IO, (>>=))
import Yesod.Default.Config (fromArgs)
import Yesod.Default.Main (defaultMain)
import Settings (parseExtra)
import Application (makeApplication)
import Network.Wai.Handler.FastCGI (run)
main :: IO ()
main = fromArgs parseExtra >>= makeApplication >>= run
答案 0 :(得分:1)
我认为使用withArgs :: [String] -> IO a -> IO a
中的System.Environment
将是最简单的方法。
main = do
env <- getEnv "YESOD_ENVIRONMENT"
withArgs [env] (fromArgs parseExtra >>= makeApplication >>= run)