aws-cloudfront-signed-cookies-0.2.0.0: library/Network/AWS/CloudFront/SignedCookies/CLI.hs
{-# LANGUAGE FlexibleContexts, OverloadedStrings, RecordWildCards #-}
-- | Command-line interface for generating AWS CloudFront signed cookies.
--
-- This program is the aggregation of these subcommands:
--
-- * "Network.AWS.CloudFront.SignedCookies.CLI.Decode"
-- * "Network.AWS.CloudFront.SignedCookies.CLI.Sign"
module Network.AWS.CloudFront.SignedCookies.CLI
( main
) where
import Network.AWS.CloudFront.SignedCookies.CLI.Internal
import qualified Network.AWS.CloudFront.SignedCookies.CLI.Decode as Decode
import qualified Network.AWS.CloudFront.SignedCookies.CLI.Sign as Sign
-- base
import Control.Monad (join)
import Data.Semigroup ((<>))
-- optparse-applicative
import qualified Options.Applicative as Opt
-- | Entry point for the AWS CloudFront signed cookie command-line interface.
main :: IO ()
main =
join $ Opt.execParser mainParserInfo
mainParserInfo :: Opt.ParserInfo (IO ())
mainParserInfo =
Opt.info (Opt.helper <*> mainParser) $
Opt.header "AWS CloudFront signed cookie utility"
mainParser :: Opt.Parser (IO ())
mainParser =
Opt.hsubparser $
Opt.command "decode" Decode.mainParserInfo <>
Opt.command "sign" Sign.mainParserInfo