module Azure.Functions.Worker ( runWorker ) where import Azure.Functions.Commands.Init (initCommand) import Azure.Functions.Commands.Run (runCommand) import Azure.Functions.Registry (Registry) import Control.Monad (join) import Options.Applicative import System.Environment (getArgs) import qualified System.IO as IO runWorker :: Registry -> IO () runWorker registry = do IO.hSetBuffering IO.stderr IO.LineBuffering join $ customExecParser (prefs $ showHelpOnEmpty <> showHelpOnError) (info (commands registry <**> helper) idm) commands :: Registry -> Parser (IO ()) commands registry = hsubparser ( command "init" (info (initCommand registry) idm) <> command "run" (info (runCommand registry) idm) )