diff options
Diffstat (limited to 'tea-cleaner/TeaCleaner/CommandLine.hs')
| -rw-r--r-- | tea-cleaner/TeaCleaner/CommandLine.hs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tea-cleaner/TeaCleaner/CommandLine.hs b/tea-cleaner/TeaCleaner/CommandLine.hs new file mode 100644 index 0000000..b74263d --- /dev/null +++ b/tea-cleaner/TeaCleaner/CommandLine.hs @@ -0,0 +1,45 @@ +module TeaCleaner.CommandLine + ( ProgramOptions(..) + , commandLineInfo + , execParser + ) where + +import Data.Text (Text) +import Options.Applicative + ( Parser + , ParserInfo + , (<**>) + , argument + , execParser + , fullDesc + , help + , helper + , info + , long + , metavar + , progDesc + , str + , switch + ) + +data ProgramOptions = ProgramOptions + { server :: Text + , token :: Text + , liveRun :: Bool + } deriving (Eq, Show) + +commandLineInfo :: ParserInfo ProgramOptions +commandLineInfo = info (commandLine <**> helper) + $ fullDesc <> progDesc "Helps to detect some spam gitea accounts" + +commandLine :: Parser ProgramOptions +commandLine = ProgramOptions + <$> serverOption + <*> tokenOption + <*> liveRunOption + where + serverOption = argument str + $ metavar "SERVER" <> help "Gitea server URL" + tokenOption = argument str + $ metavar "TOKEN" <> help "Access token" + liveRunOption = switch $ long "live-run" <> help "Purge suspicious users" |
