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 |