diff options
| -rw-r--r-- | sorbot.cabal | 2 | ||||
| -rw-r--r-- | src/CliOptions.hs | 28 | ||||
| -rw-r--r-- | src/Lib.hs | 4 | 
3 files changed, 33 insertions, 1 deletions
| diff --git a/sorbot.cabal b/sorbot.cabal index c79d2a1..69ef437 100644 --- a/sorbot.cabal +++ b/sorbot.cabal @@ -16,6 +16,7 @@ cabal-version:       >=1.10  library    hs-source-dirs:      src    exposed-modules:     Lib +                     , CliOptions                       , I18n                       , IRC                       , Message @@ -26,6 +27,7 @@ library    build-depends:       base >= 4.7 && < 5                       , bytestring                       , irc-client +                     , optparse-applicative                       , regex-tdfa                       , sqlite-simple                       , text diff --git a/src/CliOptions.hs b/src/CliOptions.hs new file mode 100644 index 0000000..861f48e --- /dev/null +++ b/src/CliOptions.hs @@ -0,0 +1,28 @@ +module CliOptions +    ( parseOptions +    ) where + +import Data.Semigroup ((<>)) +import Options.Applicative + +data Options = Options +    { slackApiToken :: String +    } + +options :: Parser Options +options = Options +    <$> strOption +         ( long "slack-token" +        <> metavar "TOKEN" +        <> value "" +        <> help "Token to access Slack's real-time messaging API" ) + +parseOptions :: IO () +parseOptions = do +    execParser opts +    return () +  where +    opts = info (options <**> helper) +         ( fullDesc +        <> progDesc "A chat bot with a plugin interface that does a bunch of \ +            \random things." ) @@ -6,10 +6,12 @@ module Lib  import Database.SQLite.Simple +import CliOptions (parseOptions)  import IRC (connectIRC)  import Message  import Plugin  someFunc :: IO ()  someFunc = do -    connectIRC "irc.freenode.net" 6697 "test-bot-7890asdf" +    -- connectIRC "irc.freenode.net" 6697 "test-bot-7890asdf" +    parseOptions | 
