@@ -19,12 +19,17 @@ data Command
1919 = JustWhine JustWhineArgs
2020 | LanguageServer LanguagServerArgs
2121
22- type JustWhineArgs = { globs :: Maybe (NonEmptyArray NonEmptyString ) }
22+ type JustWhineArgs =
23+ { globs :: Maybe (NonEmptyArray NonEmptyString )
24+ , outputFormat :: OutputFormat
25+ }
2326
2427type LanguagServerArgs = { checkWhen :: CheckFileWhen }
2528
2629data CheckFileWhen = CheckOnSave | CheckOnChange
2730
31+ data OutputFormat = Short | Long
32+
2833parseCliArgs :: ∀ m . MonadEffect m => m Args
2934parseCliArgs = liftEffect $
3035 O .customExecParser
@@ -47,8 +52,10 @@ justWhineArgsParser = ado
4752 [ O .metavar " GLOB"
4853 , O .help " Glob patterns to match files to lint. When empty, all files are linted."
4954 ]
55+ outputFormat <- outputFormatOption
5056 in
5157 { globs: NEA .fromFoldable $ List .mapMaybe NES .fromString args
58+ , outputFormat: fromMaybe Long outputFormat
5259 }
5360
5461languageServerArgsParser :: O.Parser LanguagServerArgs
@@ -92,12 +99,18 @@ quietFlag =
9299 , O .help " Print no output"
93100 ]
94101
95- languageServerFlag :: O.Parser Boolean
96- languageServerFlag =
97- O .switch $ fold
98- [ O .long " language-server"
99- , O .help " Start Whine as a language server"
102+ outputFormatOption :: O.Parser (Maybe OutputFormat )
103+ outputFormatOption =
104+ OT .optional $ O .option parseOutputFormat $ fold
105+ [ O .long " output"
106+ , O .short ' o'
107+ , O .help " Output format. Possible values are 'short' and 'long'. Default is 'long'."
100108 ]
109+ where
110+ parseOutputFormat = O .eitherReader \s -> do
111+ if s == " short" then Right Short
112+ else if s == " long" then Right Long
113+ else Left $ " Invalid output format: " <> s
101114
102115determineLogLevel :: Args -> LogSeverity
103116determineLogLevel args =
0 commit comments