{-# LANGUAGE FlexibleContexts #-} module Network.AWS.CloudFront.SignedCookies.CLI.Internal ( text, days ) where import Network.AWS.CloudFront.SignedCookies import Network.AWS.CloudFront.SignedCookies.Types -- base import Data.Coerce (Coercible, coerce) import Data.Semigroup ((<>)) import Prelude hiding (mod) -- optparse-applicative import qualified Options.Applicative as Opt -- text import qualified Data.Text as Text text :: Coercible Text a => String -> String -> Opt.Parser a text long help = fmap (coerce . Text.pack) $ Opt.strOption $ mod long help days :: Coercible NominalDiffTime a => String -> String -> Opt.Parser a days long help = fmap (coerce . (* nominalDay) . fromInteger) $ Opt.option Opt.auto $ mod long help mod :: Opt.HasName f => String -> String -> Opt.Mod f a mod long help = Opt.long long <> Opt.help help