From 0892b8b0a313101a54983b01aef49b5e6126d954 Mon Sep 17 00:00:00 2001 From: Filip Gralinski Date: Sun, 23 Aug 2015 08:54:08 +0200 Subject: [PATCH] print init instructions --- geval.cabal | 1 + src/GEval/OptionsParser.hs | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/geval.cabal b/geval.cabal index 89a2cd0..072abc9 100644 --- a/geval.cabal +++ b/geval.cabal @@ -24,6 +24,7 @@ library , conduit-extra , directory , filepath + , here , optparse-applicative , resourcet , text diff --git a/src/GEval/OptionsParser.hs b/src/GEval/OptionsParser.hs index fcaa531..f31ce81 100644 --- a/src/GEval/OptionsParser.hs +++ b/src/GEval/OptionsParser.hs @@ -1,3 +1,5 @@ +{-# LANGUAGE QuasiQuotes #-} + module GEval.OptionsParser (fullOptionsParser, runGEval) where @@ -5,8 +7,10 @@ module GEval.OptionsParser import Options.Applicative import qualified System.Directory as D import System.FilePath +import System.Exit import Data.Maybe import System.IO +import Data.String.Here import GEval.Core @@ -102,4 +106,18 @@ runGEval''' False spec = do return $ Just val initChallange :: GEvalSpecification -> IO () -initChallange spec = print "will init a challange" +initChallange spec = case gesExpectedDirectory spec of + Nothing -> showInitInstructions + Just expectedDirectory -> initChallange' expectedDirectory spec + +initChallange' :: FilePath -> GEvalSpecification -> IO () +initChallange' expectedDirectory spec = putStrLn "init running..." + +showInitInstructions = do + putStrLn [here| +Run: + geval --init --expected-directory CHALLANGE +to create a directory CHALLANGE representing a Gonito challange. +(Note that `--out-directory` option is not taken into account with `--init` option.) +|] + exitFailure