aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sorbot.cabal2
-rw-r--r--src/CliOptions.hs28
-rw-r--r--src/Lib.hs4
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." )
diff --git a/src/Lib.hs b/src/Lib.hs
index 5ae6f9b..b34100e 100644
--- a/src/Lib.hs
+++ b/src/Lib.hs
@@ -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