From 7b7a363693af4e051d74b4ed7700648640c35e19 Mon Sep 17 00:00:00 2001 From: Joscha Date: Sun, 29 Mar 2020 11:08:43 +0000 Subject: [PATCH] Use package for modifying paths --- mima-run/Main.hs | 7 ++++--- mima-run/Mima/MimaRun/Options.hs | 11 +++++------ package.yaml | 1 + 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/mima-run/Main.hs b/mima-run/Main.hs index 9a7952d..feea74f 100644 --- a/mima-run/Main.hs +++ b/mima-run/Main.hs @@ -14,9 +14,9 @@ import Mima.Vm.State import Mima.Vm.Storage loadMetadataOrEmpty :: FilePath -> Run Metadata -loadMetadataOrEmpty path = catch (loadMetadata path) (\error -> do - liftIO $ putStrLn $ "Metafile could not be loaded. " ++ T.unpack error - pure mempty) +loadMetadataOrEmpty path = catch (loadMetadata path) $ \e -> do + liftIO $ putStrLn $ "Metafile could not be loaded. " ++ T.unpack e + pure mempty main :: IO () main = runOrExit 2 $ do @@ -38,5 +38,6 @@ main = runOrExit 2 $ do Nothing -> putStrLn "Ran out of steps" Just abortReason -> T.putStrLn $ toText abortReason pure finalState + liftIO $ putStrLn "" liftIO $ print finalState diff --git a/mima-run/Mima/MimaRun/Options.hs b/mima-run/Mima/MimaRun/Options.hs index 5e957ad..27bd3f5 100644 --- a/mima-run/Mima/MimaRun/Options.hs +++ b/mima-run/Mima/MimaRun/Options.hs @@ -3,9 +3,9 @@ module Mima.MimaRun.Options , parserInfo ) where -import Data.List import Data.Maybe import Options.Applicative +import System.FilePath data Options = Options { inputFile :: FilePath @@ -14,11 +14,9 @@ data Options = Options } deriving (Show) createOptions :: FilePath -> Maybe FilePath -> Maybe Integer -> Options -createOptions inFile metaFile = Options inFile resolvedMetadataFile +createOptions inFile metaFile = Options inFile resolvedMetaFile where - inputRenamedToMeta = removeExtension inFile ++ "mima-meta" - resolvedMetadataFile = fromMaybe inputRenamedToMeta metaFile - removeExtension = dropWhileEnd (/= '.') + resolvedMetaFile = fromMaybe (replaceExtension inFile "mima-meta") metaFile parser :: Parser Options parser = createOptions @@ -27,7 +25,7 @@ parser = createOptions <> metavar "INPUTFILE" ) <*> (optional . strOption) - ( short 'm' + ( short 'm' <> long "metadata" <> help "The metadata file to use" <> metavar "METAFILE" @@ -38,5 +36,6 @@ parser = createOptions <> help "Maximum number of steps to execute" <> metavar "STEPS" ) + parserInfo :: ParserInfo Options parserInfo = info (parser <**> helper) (failureCode 1) diff --git a/package.yaml b/package.yaml index 37cd574..1f4bc04 100644 --- a/package.yaml +++ b/package.yaml @@ -19,6 +19,7 @@ dependencies: - binary - bytestring - containers + - filepath - optparse-applicative - text - transformers