Skip to content

Commit a44dd9a

Browse files
committed
Better help message
1 parent 65d3e54 commit a44dd9a

1 file changed

Lines changed: 17 additions & 24 deletions

File tree

cli/src/Cli.elm

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -60,21 +60,25 @@ program =
6060
|> Cli.Program.add
6161
(Cli.OptionsParser.build CliOptions
6262
|> Cli.OptionsParser.with
63-
(Cli.Option.requiredPositionalArg "entryFilePath"
63+
(Cli.Option.requiredPositionalArg "input-file"
64+
|> Cli.Option.withDisplayName "file.json|file.yaml"
6465
|> Cli.Option.map OpenApi.Config.pathFromString
6566
)
6667
|> Cli.OptionsParser.with
6768
(Cli.Option.optionalKeywordArg "output-dir"
6869
|> Cli.Option.withDefault "generated"
70+
|> Cli.Option.withDisplayName "dir"
6971
|> Cli.Option.withDescription "The directory to output to. Defaults to `generated/`."
7072
)
7173
|> Cli.OptionsParser.with
7274
(Cli.Option.optionalKeywordArg "module-name"
75+
|> Cli.Option.withDisplayName "Elm.Module.Name"
7376
|> Cli.Option.withDescription "The Elm module name. Defaults to `OAS info.title`."
7477
)
7578
|> Cli.OptionsParser.with
7679
(Cli.Option.optionalKeywordArg "effect-types"
7780
|> Cli.Option.validateMap effectTypesValidation
81+
|> Cli.Option.withDisplayName "pkg1.type1,..."
7882
|> Cli.Option.withDescription
7983
([ "A list of which kind of APIs to generate."
8084
, "Each item should be of the form `package.type`."
@@ -103,6 +107,7 @@ program =
103107
|> Cli.OptionsParser.with
104108
(Cli.Option.optionalKeywordArg "server"
105109
|> Cli.Option.validateMap serverValidation
110+
|> Cli.Option.withDisplayName "https://example.com"
106111
|> Cli.Option.withDescription
107112
([ "The base URL for the OpenAPI server."
108113
, "If not specified this will be extracted from the OAS"
@@ -120,7 +125,12 @@ program =
120125
)
121126
|> Cli.OptionsParser.with
122127
(Cli.Option.optionalKeywordArg "auto-convert-swagger"
123-
|> Cli.Option.validateMap autoConvertValidation
128+
|> Cli.Option.withDefault "ask"
129+
|> Cli.Option.oneOf
130+
[ ( "ask", OpenApi.Config.AskBeforeConversion )
131+
, ( "never", OpenApi.Config.NeverConvert )
132+
, ( "always", OpenApi.Config.AlwaysConvert )
133+
]
124134
|> Cli.Option.withDescription
125135
([ "\"ask\" If a Swagger doc is encountered, ask the user before converting"
126136
, "it to an Open API file. This is the default."
@@ -133,6 +143,7 @@ program =
133143
)
134144
|> Cli.OptionsParser.with
135145
(Cli.Option.optionalKeywordArg "swagger-conversion-url"
146+
|> Cli.Option.withDisplayName "url"
136147
|> Cli.Option.withDescription
137148
([ "The URL to use to convert a Swagger doc to an Open API"
138149
, "file. Defaults to `https://converter.swagger.io/api/convert`."
@@ -142,6 +153,7 @@ program =
142153
)
143154
|> Cli.OptionsParser.with
144155
(Cli.Option.optionalKeywordArg "swagger-conversion-command"
156+
|> Cli.Option.withDisplayName "cmd"
145157
|> Cli.Option.withDescription
146158
([ "Instead of making an HTTP request to convert"
147159
, "from Swagger to Open API, use this command."
@@ -151,6 +163,7 @@ program =
151163
)
152164
|> Cli.OptionsParser.with
153165
(Cli.Option.keywordArgList "swagger-conversion-command-args"
166+
|> Cli.Option.withDisplayName "args"
154167
|> Cli.Option.withDescription
155168
([ "Additional arguments to pass to the Swagger conversion command,"
156169
, "before the contents of the Swagger file are passed in."
@@ -171,11 +184,13 @@ program =
171184
)
172185
|> Cli.OptionsParser.with
173186
(Cli.Option.keywordArgList "overrides"
187+
|> Cli.Option.withDisplayName "override.json|yaml"
174188
|> Cli.Option.map (List.map OpenApi.Config.pathFromString)
175189
|> Cli.Option.withDescription "Load an additional file to override parts of the original Open API file."
176190
)
177191
|> Cli.OptionsParser.with
178192
(Cli.Option.optionalKeywordArg "write-merged-to"
193+
|> Cli.Option.withDisplayName "dir"
179194
|> Cli.Option.withDescription "Write the merged Open API spec to the given file."
180195
)
181196
|> Cli.OptionsParser.with
@@ -206,28 +221,6 @@ formatOptionDescription descriptionLines =
206221
|> String.join "\n"
207222

208223

209-
autoConvertValidation : Maybe String -> Result String OpenApi.Config.AutoConvertSwagger
210-
autoConvertValidation input =
211-
case input of
212-
Nothing ->
213-
Ok OpenApi.Config.AskBeforeConversion
214-
215-
Just "ask" ->
216-
Ok OpenApi.Config.AskBeforeConversion
217-
218-
Just "" ->
219-
Ok OpenApi.Config.AlwaysConvert
220-
221-
Just "always" ->
222-
Ok OpenApi.Config.AlwaysConvert
223-
224-
Just "never" ->
225-
Ok OpenApi.Config.NeverConvert
226-
227-
Just value ->
228-
Err ("Unexpected value for auto-convert-swagger: " ++ value)
229-
230-
231224
effectTypesValidation : Maybe String -> Result String (List OpenApi.Config.EffectType)
232225
effectTypesValidation str =
233226
case str of

0 commit comments

Comments
 (0)