@@ -51,14 +51,15 @@ import Data.Maybe
5151import Data.Text (Text )
5252import Data.Text qualified as Text
5353import Data.Time.Clock (UTCTime )
54- import Data.Time.Format (defaultTimeLocale , parseTimeOrError )
54+ import Data.Time.Format (defaultTimeLocale , parseTimeM )
5555import Data.Word
5656import GHC.Exts (IsList (.. ))
5757import GHC.Natural (Natural )
5858import Lens.Micro
5959import Network.Socket (PortNumber )
6060import Options.Applicative hiding (help , str )
6161import Options.Applicative qualified as Opt
62+ import Options.Applicative.Types (readerAsk )
6263import Text.Read (readEither , readMaybe )
6364import Text.Read qualified as Read
6465import Vary (Vary , (:|) )
@@ -1413,9 +1414,19 @@ pTxMetadataJsonSchema =
14131414 pure TxMetadataJsonNoSchema
14141415 ]
14151416
1416- convertTime :: String -> UTCTime
1417- convertTime =
1418- parseTimeOrError False defaultTimeLocale " %Y-%m-%dT%H:%M:%SZ"
1417+ convertTime :: String -> Maybe UTCTime
1418+ convertTime = parseTimeM False defaultTimeLocale " %Y-%m-%dT%H:%M:%SZ"
1419+
1420+ timeReader :: ReadM UTCTime
1421+ timeReader = do
1422+ arg <- readerAsk
1423+ maybe
1424+ ( readerError $
1425+ " Malformed timestamp `" ++ arg ++ " ', use UTC timestamp in YYYY-MM-DDThh:mm:ssZ format."
1426+ )
1427+ return
1428+ . convertTime
1429+ $ arg
14191430
14201431pMetadataFile :: Parser MetadataFile
14211432pMetadataFile =
0 commit comments