Skip to content

Commit

Permalink
Autogenerate list of formats for --help
Browse files Browse the repository at this point in the history
  • Loading branch information
koalaman committed Aug 6, 2017
1 parent 72ed234 commit 73d06c4
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions shellcheck.hs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import Data.Bits
import Data.Char
import Data.Functor
import Data.Either
import Data.List
import qualified Data.Map as Map
import Data.Maybe
import Data.Monoid
Expand Down Expand Up @@ -77,8 +78,8 @@ options = [
Option "e" ["exclude"]
(ReqArg (Flag "exclude") "CODE1,CODE2..") "exclude types of warnings",
Option "f" ["format"]
(ReqArg (Flag "format") "FORMAT")
"output format (checkstyle, gcc, json, tty)",
(ReqArg (Flag "format") "FORMAT") $
"output format (" ++ formatList ++ ")",
Option "C" ["color"]
(OptArg (maybe (Flag "color" "always") (Flag "color")) "WHEN")
"Use color (auto, always, never)",
Expand Down Expand Up @@ -109,6 +110,10 @@ formats options = Map.fromList [
("tty", ShellCheck.Formatter.TTY.format options)
]

formatList = intercalate ", " names
where
names = Map.keys $ formats (formatterOptions defaultOptions)

getOption [] _ = Nothing
getOption (Flag var val:_) name | name == var = return val
getOption (_:rest) flag = getOption rest flag
Expand Down

0 comments on commit 73d06c4

Please sign in to comment.