optparse-applicative から自動生成されたヘルプ出力を書き直そうとしています。次のコードにより、ヘルプ出力を置き換えることができます。
import Options.Applicative
import Data.Semigroup ((<>))
data Opts = Opts { optFast :: Bool, optHelp :: Bool }
sample :: Parser Opts
sample = Opts
<$> switch
( long "fast"
<> short 'f'
<> help "Whether to be fast" )
<*> switch
( long "help"
<> short 'h'
<> help $ info )
doSomething :: Opts -> IO ()
doSomething (Opts { optFast = True }) = putStrLn $ "Very fast execution!"
doSomething (Opts { optHelp = True }) = putStrLn $ "Some help for you!"
doSomething _ = putStrLn $ "Rather slow execution."
main :: IO ()
main =
let
opts = info (sample)
( fullDesc
<> progDesc "Print execution speed"
<> header "Hello - A test for optparse-applicative" )
in
doSomething =<< execParser opts
( で実行可能stack script --resolver=lts-16 main.hs -- --help
)
ただし、完全に置き換えるのではなく、自動生成されたヘルプ テキストの特定の部分のみを置き換えます。これはどのように可能ですか?