From 6c170513a69bd4c49b006d0672637a48eb449884 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sun, 26 Jan 2025 10:17:33 +0100 Subject: tea-cleaner: Add command line parser --- tea-cleaner/TeaCleaner/CommandLine.hs | 45 +++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 tea-cleaner/TeaCleaner/CommandLine.hs (limited to 'tea-cleaner/TeaCleaner/CommandLine.hs') 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" -- cgit v1.2.3