30 lines
1.1 KiB
Haskell
30 lines
1.1 KiB
Haskell
module System.Serverman ( run
|
|
, module System.Serverman.Action
|
|
, module System.Serverman.Utils
|
|
, module System.Serverman.Services
|
|
, module System.Serverman.Actions.WebServer
|
|
, module System.Serverman.Actions.Env
|
|
, module System.Serverman.Actions.Install) where
|
|
|
|
import System.Serverman.Action
|
|
import System.Serverman.Utils
|
|
import System.Serverman.Services
|
|
import System.Serverman.Actions.WebServer
|
|
import System.Serverman.Actions.Install
|
|
import System.Serverman.Actions.Env
|
|
|
|
import System.Serverman.Actions.Nginx
|
|
import System.Serverman.Actions.WebServer
|
|
|
|
import Control.Monad.Free
|
|
|
|
run :: Action r -> IO r
|
|
run (Pure r) = return r
|
|
run (Free (NewWebServer params next))
|
|
| service params == NGINX = nginx params >> run next
|
|
-- | service == Apache = apache n >> run next
|
|
| otherwise = run next
|
|
run (Free (DetectOS next)) = getOS >>= run . next
|
|
run (Free (Install os service next)) = installService os service >> run next
|
|
|